diff --git a/0001-BUG-MEDIUM-systemd-set-KillMode-to-mixed.patch b/0001-BUG-MEDIUM-systemd-set-KillMode-to-mixed.patch new file mode 100644 index 0000000..0578177 --- /dev/null +++ b/0001-BUG-MEDIUM-systemd-set-KillMode-to-mixed.patch @@ -0,0 +1,41 @@ +From 1f24e3fee3aba83fb3338d17589d0ad0f34f6c73 Mon Sep 17 00:00:00 2001 +From: Apollon Oikonomopoulos +Date: Wed, 8 Oct 2014 15:14:41 +0300 +Subject: [PATCH] BUG/MEDIUM: systemd: set KillMode to 'mixed' + +By default systemd will send SIGTERM to all processes in the service's +control group. In our case, this includes the wrapper, the master +process and all worker processes. + +Since commit c54bdd2a the wrapper actually catches SIGTERM and survives +to see the master process getting killed by systemd and regard this as +an error, placing the unit in a failed state during "systemctl stop". + +Since the wrapper now handles SIGTERM by itself, we switch the kill mode +to 'mixed', which means that systemd will deliver the initial SIGTERM to +the wrapper only, and if the actual haproxy processes don't exit after a +given amount of time (default: 90s), a SIGKILL is sent to all remaining +processes in the control group. See systemd.kill(5) for more +information. + +This should also be backported to 1.5. +(cherry picked from commit 74f016985ab1fa7a6a5afa301d982e77eba9c96a) +--- + contrib/systemd/haproxy.service.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/contrib/systemd/haproxy.service.in b/contrib/systemd/haproxy.service.in +index 1a3d2c0..0bc5420 100644 +--- a/contrib/systemd/haproxy.service.in ++++ b/contrib/systemd/haproxy.service.in +@@ -5,6 +5,7 @@ After=network.target + [Service] + ExecStart=@SBINDIR@/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid + ExecReload=/bin/kill -USR2 $MAINPID ++KillMode=mixed + Restart=always + + [Install] +-- +1.8.4.5 + diff --git a/haproxy-1.5_check_config_before_start.patch b/haproxy-1.5_check_config_before_start.patch index bdd251d..0f63125 100644 --- a/haproxy-1.5_check_config_before_start.patch +++ b/haproxy-1.5_check_config_before_start.patch @@ -1,5 +1,5 @@ diff --git a/contrib/systemd/haproxy.service.in b/contrib/systemd/haproxy.service.in -index 1a3d2c0..9b3b72a 100644 +index 0bc5420..85937e4 100644 --- a/contrib/systemd/haproxy.service.in +++ b/contrib/systemd/haproxy.service.in @@ -3,6 +3,7 @@ Description=HAProxy Load Balancer @@ -9,4 +9,4 @@ index 1a3d2c0..9b3b72a 100644 +ExecStartPre=@SBINDIR@/haproxy -f /etc/haproxy/haproxy.cfg -c -q ExecStart=@SBINDIR@/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid ExecReload=/bin/kill -USR2 $MAINPID - Restart=always + KillMode=mixed diff --git a/haproxy.changes b/haproxy.changes index e1f0aa3..1ddaeed 100644 --- a/haproxy.changes +++ b/haproxy.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Thu Oct 9 14:24:45 UTC 2014 - kgronlund@suse.com + +- Fix check config before start patch to apply after previous patch +- Update patch: haproxy-1.5_check_config_before_start.patch + +------------------------------------------------------------------- +Thu Oct 9 14:14:35 UTC 2014 - kgronlund@suse.com + +- BUG/MEDIUM: systemd: set KillMode to 'mixed' +- Add patch: + - 0001-BUG-MEDIUM-systemd-set-KillMode-to-mixed.patch + ------------------------------------------------------------------- Wed Oct 8 12:53:41 UTC 2014 - kgronlund@suse.com diff --git a/haproxy.spec b/haproxy.spec index cdb1d12..48ab536 100644 --- a/haproxy.spec +++ b/haproxy.spec @@ -61,6 +61,8 @@ Patch1: haproxy-1.2.16_config_haproxy_user.patch Patch2: haproxy-makefile_lib.patch Patch3: sec-options.patch Patch4: haproxy-1.5_check_config_before_start.patch +# PATCH-FIX-UPSTREAM: BUG/MEDIUM: systemd: set KillMode to 'mixed' +Patch5: 0001-BUG-MEDIUM-systemd-set-KillMode-to-mixed.patch Source99: haproxy-rpmlintrc # @@ -94,6 +96,7 @@ the most work done from every CPU cycle. %patch1 %patch2 %patch3 +%patch5 -p1 %patch4 -p1 %build