Public bug reported: Init script fails to stop service
[Environment] Trusty 14.04.2 [Description] This seems to have been introduced in 1.4.24-2ubuntu0.1 as part of https://bugs.launchpad.net/ubuntu/+source/haproxy/+bug/1462495. The problem as far as I can see it is that Trustys start-stop-daemon version doesn't handle --pid as expected by the init script. It only knows --pidfile. for pid in $(cat $PIDFILE); do start-stop-daemon --quiet --oknodo --stop \ --retry 5 --pid $pid --exec $HAPROXY || ret=$? done start-stop-daemon treats the argument to --pid as a PID file and therefore tries to open it, which fails. Debugging output: root@ubuntu-1404:~# ps -ef | grep haproxy | grep -v grep haproxy 31802 1 0 16:25 ? 00:00:00 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -D -p /var/run/haproxy.pid root@ubuntu-1404:~# /etc/init.d/haproxy status haproxy is running. root@ubuntu-1404:~# cat /var/run/haproxy.pid 31802 root@ubuntu-1404:~# bash -x /etc/init.d/haproxy stop ... ++ cat /var/run/haproxy.pid + for pid in '$(cat $PIDFILE)' + start-stop-daemon --quiet --oknodo --stop --retry 5 --pid 31802 --exec /usr/sbin/haproxy + '[' 0 -eq 0 ']' + rm -f /var/run/haproxy.pid ... + return 0 + exit 0 root@ubuntu-1404:~# strace -f start-stop-daemon --quiet --oknodo --stop --retry 5 --pid 31802 --exec /usr/sbin/haproxy .... open("31802", O_RDONLY) = -1 ENOENT (No such file or directory) exit_group(0) = ? +++ exited with 0 +++ root@ubuntu-1404:~# root@ubuntu-1404:~# ps -ef | grep haproxy | grep -v grep haproxy 31802 1 0 16:25 ? 00:00:00 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -D -p /var/run/haproxy.pid root@ubuntu-1404:~# cat /var/run/haproxy.pid cat: /var/run/haproxy.pid: No such file or directory root@ubuntu-1404:~# root@ubuntu-1404:~# dpkg -l haproxy dpkg Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-======================================-========================-========================-================================================================================== ii dpkg 1.17.5ubuntu5.4 amd64 Debian package management system ii haproxy 1.4.24-2ubuntu0.1 amd64 fast and reliable load balancing reverse proxy root@ubuntu-1404:~# ** Affects: haproxy (Ubuntu) Importance: Undecided Status: New ** Description changed: + Init script fails to stop service + [Environment] Trusty 14.04.2 [Description] This seems to have been introduced in 1.4.24-2ubuntu0.1 as part of https://bugs.launchpad.net/ubuntu/+source/haproxy/+bug/1462495. The problem as far as I can see it is that Trustys start-stop-daemon version doesn't handle --pid as expected by the init script. It only knows --pidfile. - for pid in $(cat $PIDFILE); do - start-stop-daemon --quiet --oknodo --stop \ - --retry 5 --pid $pid --exec $HAPROXY || ret=$? - done + for pid in $(cat $PIDFILE); do + start-stop-daemon --quiet --oknodo --stop \ + --retry 5 --pid $pid --exec $HAPROXY || ret=$? + done start-stop-daemon treats the argument to --pid as a PID file and therefore tries to open it, which fails. Debugging output: root@ubuntu-1404:~# ps -ef | grep haproxy | grep -v grep haproxy 31802 1 0 16:25 ? 00:00:00 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -D -p /var/run/haproxy.pid root@ubuntu-1404:~# /etc/init.d/haproxy status haproxy is running. - root@ubuntu-1404:~# cat /var/run/haproxy.pid + root@ubuntu-1404:~# cat /var/run/haproxy.pid 31802 root@ubuntu-1404:~# bash -x /etc/init.d/haproxy stop ... ++ cat /var/run/haproxy.pid + for pid in '$(cat $PIDFILE)' + start-stop-daemon --quiet --oknodo --stop --retry 5 --pid 31802 --exec /usr/sbin/haproxy + '[' 0 -eq 0 ']' + rm -f /var/run/haproxy.pid ... + return 0 + exit 0 root@ubuntu-1404:~# strace -f start-stop-daemon --quiet --oknodo --stop --retry 5 --pid 31802 --exec /usr/sbin/haproxy .... open("31802", O_RDONLY) = -1 ENOENT (No such file or directory) exit_group(0) = ? +++ exited with 0 +++ - root@ubuntu-1404:~# + root@ubuntu-1404:~# root@ubuntu-1404:~# ps -ef | grep haproxy | grep -v grep haproxy 31802 1 0 16:25 ? 00:00:00 /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -D -p /var/run/haproxy.pid - root@ubuntu-1404:~# cat /var/run/haproxy.pid + root@ubuntu-1404:~# cat /var/run/haproxy.pid cat: /var/run/haproxy.pid: No such file or directory - root@ubuntu-1404:~# + root@ubuntu-1404:~# root@ubuntu-1404:~# dpkg -l haproxy dpkg Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-======================================-========================-========================-================================================================================== ii dpkg 1.17.5ubuntu5.4 amd64 Debian package management system ii haproxy 1.4.24-2ubuntu0.1 amd64 fast and reliable load balancing reverse proxy root@ubuntu-1404:~# -- You received this bug notification because you are a member of Ubuntu Server Team, which is subscribed to haproxy in Ubuntu. https://bugs.launchpad.net/bugs/1477221 Title: Init script fails to stop service To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/haproxy/+bug/1477221/+subscriptions -- Ubuntu-server-bugs mailing list Ubuntu-server-bugs@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs