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
23 lines
527 B
Bash
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
|