summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Henkel <tobias.henkel@bmw.de>2017-12-27 10:17:29 +0100
committerTobias Henkel <tobias.henkel@bmw.de>2017-12-27 10:17:29 +0100
commit30cbb65b4315820b89333e3683e4c350ec173a81 (patch)
tree15e10a52a6582697b57e446477ff1cfc7e6f53d2
parenta56402e4d68d492098a58b6827f14b90d046c849 (diff)
downloadzuul-30cbb65b4315820b89333e3683e4c350ec173a81.tar.gz
Centrally register stack dump handler
We want the stack dump handler to be present in all zuul apps so this can be registered in a central place. Change-Id: I0c4a97d6ee983aa4d57928682dfb6eeffd050197
-rwxr-xr-xzuul/cmd/__init__.py4
-rwxr-xr-xzuul/cmd/executor.py2
-rwxr-xr-xzuul/cmd/merger.py2
-rwxr-xr-xzuul/cmd/scheduler.py1
-rwxr-xr-xzuul/cmd/web.py2
5 files changed, 4 insertions, 7 deletions
diff --git a/zuul/cmd/__init__.py b/zuul/cmd/__init__.py
index 236fd9f44..bdb93978f 100755
--- a/zuul/cmd/__init__.py
+++ b/zuul/cmd/__init__.py
@@ -176,6 +176,10 @@ class ZuulDaemonApp(ZuulApp):
pid_fn = self.getPidFile()
pid = pid_file_module.TimeoutPIDLockFile(pid_fn, 10)
+ # Early register the stack dump handler for all zuul apps. This makes
+ # it possible to also gather stack dumps during startup hangs.
+ signal.signal(signal.SIGUSR2, stack_dump_handler)
+
if self.args.nodaemon:
self.run()
else:
diff --git a/zuul/cmd/executor.py b/zuul/cmd/executor.py
index c82deb748..c600dc96d 100755
--- a/zuul/cmd/executor.py
+++ b/zuul/cmd/executor.py
@@ -130,8 +130,6 @@ class Executor(zuul.cmd.ZuulDaemonApp):
log_streaming_port=self.finger_port)
self.executor.start()
- signal.signal(signal.SIGUSR2, zuul.cmd.stack_dump_handler)
-
if self.args.nodaemon:
signal.signal(signal.SIGTERM, self.exit_handler)
while True:
diff --git a/zuul/cmd/merger.py b/zuul/cmd/merger.py
index 2916a0b3c..8c4798923 100755
--- a/zuul/cmd/merger.py
+++ b/zuul/cmd/merger.py
@@ -62,8 +62,6 @@ class Merger(zuul.cmd.ZuulDaemonApp):
self.connections)
self.merger.start()
- signal.signal(signal.SIGUSR2, zuul.cmd.stack_dump_handler)
-
if self.args.nodaemon:
signal.signal(signal.SIGTERM, self.exit_handler)
while True:
diff --git a/zuul/cmd/scheduler.py b/zuul/cmd/scheduler.py
index d94e9ea17..7748a80a7 100755
--- a/zuul/cmd/scheduler.py
+++ b/zuul/cmd/scheduler.py
@@ -123,7 +123,6 @@ class Scheduler(zuul.cmd.ZuulDaemonApp):
import zuul.webapp
import zuul.zk
- signal.signal(signal.SIGUSR2, zuul.cmd.stack_dump_handler)
if (self.config.has_option('gearman_server', 'start') and
self.config.getboolean('gearman_server', 'start')):
self.start_gear_server()
diff --git a/zuul/cmd/web.py b/zuul/cmd/web.py
index 4687de653..ad3062ff0 100755
--- a/zuul/cmd/web.py
+++ b/zuul/cmd/web.py
@@ -106,8 +106,6 @@ class WebServer(zuul.cmd.ZuulDaemonApp):
self.configure_connections()
- signal.signal(signal.SIGUSR2, zuul.cmd.stack_dump_handler)
-
try:
self._run()
except Exception: