Files
kolla-ansible/docker/haproxy/extend_start.sh
MD NADEEM f11112371d Fix race condition in haproxy
The time period between getting pid
of haproxy service and checking existance of
pid file is very short, if with in this period
haproxy service get reload then the race condition
occured and container get exit as extend_start.sh
script exit.

To minimize the risk of race condition, this patch
let the extend_start.sh script to try upto 3 times
before exit.

Closes-Bug: #1479888

Change-Id: I2f9b7ec832dec8d94a2cdd27ca8a212d0c65a60d
2016-03-16 15:56:19 +00:00

23 lines
527 B
Bash

#!/bin/bash
# Set datagram receiving queue length to 128 for haproxy's socket
sysctl net.unix.max_dgram_qlen=128
# We are intentionally not using exec so we can reload the haproxy config later
echo "Running command: '${CMD}'"
$CMD
retry=0
# The loop breaks only when haproxy.pid get missing even after 3 re-try.
while [[ $retry -lt 3 ]]; do
if [[ ! -e /run/haproxy.pid || ! -d /proc/$(cat /run/haproxy.pid) ]]; then
retry=$((retry+1))
sleep 2
continue
fi
retry=0
sleep 5
done
exit 1