From bd5440a1020c2f11a10e16e31d4106d8f6511446 Mon Sep 17 00:00:00 2001 From: Alexander Kukushkin Date: Thu, 16 Jun 2016 15:19:21 +0200 Subject: [PATCH] Fix a typo and call sys.exit on sigterm otherwise it will wait up to `loop_wait` seconds berfore exiting... --- patroni/__init__.py | 7 +++++-- tests/test_patroni.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/patroni/__init__.py b/patroni/__init__.py index ef1f29c5..706df5fa 100644 --- a/patroni/__init__.py +++ b/patroni/__init__.py @@ -1,5 +1,6 @@ import logging import signal +import sys import time from patroni.api import RestApiServer @@ -65,7 +66,9 @@ class Patroni(object): self._received_sighup = True def sigterm_handler(self, *args): - self._received_sigterm = True + if not self._received_sigterm: + self._received_sigterm = True + sys.exit() @property def noloadbalance(self): @@ -112,7 +115,7 @@ class Patroni(object): def setup_signal_handlers(self): signal.signal(signal.SIGHUP, self.sighup_handler) - signal.signal(signal.SIGHUP, self.sigterm_handler) + signal.signal(signal.SIGTERM, self.sigterm_handler) signal.signal(signal.SIGCHLD, sigchld_handler) diff --git a/tests/test_patroni.py b/tests/test_patroni.py index ef2a5fc0..af8b36b0 100644 --- a/tests/test_patroni.py +++ b/tests/test_patroni.py @@ -69,7 +69,7 @@ class TestPatroni(unittest.TestCase): self.assertRaises(SleepException, self.p.run) def test_sigterm_handler(self): - self.p.sigterm_handler() + self.assertRaises(SystemExit, self.p.sigterm_handler) def test_schedule_next_run(self): self.p.ha.dcs.watch = Mock(return_value=True)