From 04073f36d8ee8c2991b5d86d1a106a28662e86cc Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Tue, 6 Oct 2020 09:12:54 +0000 Subject: [PATCH] systemvm: FIX haproxy is not reloaded but restarted in VR when upgrade to cloudstack 4.14 or 4.15, there is no process ends with "/run/haproxy.pid" after reload haproxy. so haproxy is reloaded -> restarted -> reloaded -> restarted -> and so on After restarting haproxy ``` root@r-2040-VM:~# ps aux |grep /usr/sbin/haproxy root 24894 0.3 1.3 20492 13352 ? Ss 09:14 0:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid root 24895 0.1 1.1 22332 11372 ? Ss 09:14 0:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid ``` After reloading haproxy ``` root@r-2040-VM:~# systemctl reload haproxy root@r-2040-VM:~# ps aux |grep /usr/sbin/haproxy root 24894 0.0 1.3 20492 13300 ? Ss 09:14 0:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -sf 24895 root 26694 0.0 0.9 22196 9488 ? Ss 09:16 0:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -sf 24895 ``` so use 'grep' to find if haproxy is running. --- systemvm/debian/opt/cloud/bin/cs/CsLoadBalancer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemvm/debian/opt/cloud/bin/cs/CsLoadBalancer.py b/systemvm/debian/opt/cloud/bin/cs/CsLoadBalancer.py index a45d57efe790..157c5cc0a4e8 100755 --- a/systemvm/debian/opt/cloud/bin/cs/CsLoadBalancer.py +++ b/systemvm/debian/opt/cloud/bin/cs/CsLoadBalancer.py @@ -46,7 +46,7 @@ def process(self): CsHelper.copy(HAPROXY_CONF_T, HAPROXY_CONF_P) proc = CsProcess(['/run/haproxy.pid']) - if not proc.find(): + if proc.grep("/usr/sbin/haproxy") == -1: logging.debug("CsLoadBalancer:: will restart HAproxy!") CsHelper.service("haproxy", "restart") else: