Merge "Document Zuul's SIGUSR2 handler"

This commit is contained in:
Zuul 2021-10-25 16:03:57 +00:00 committed by Gerrit Code Review
commit ba66fa0c5c

View File

@ -275,6 +275,31 @@ the problem. Note that ``Traceback`` messages are not prefixed with the event
ID which means you'll have to grep with additional context, for example using ID which means you'll have to grep with additional context, for example using
``grep -B20 -A20``. ``grep -B20 -A20``.
Another useful debugging tool is Zuul's SIGUSR2 handler. This signal handler
produces a thread dump in the debug log and toggles the yappi python profiler.
Each Zuul service supports the signal handler and it can be triggered via::
you@zuul02$ sudo kill -USR2 $ZUUL_PID
To determine ``$ZUUL_PID`` you can run ``ps`` against the ``zuul-*`` service
that you are interested in getting information from. For example::
you@zuul02$ ps -ef | grep zuul-scheduler
zuuld 1893030 1893010 0 08:33 ? 00:00:00 /usr/bin/dumb-init -- /usr/local/bin/zuul-scheduler -f
zuuld 1893052 1893030 69 08:33 ? 07:57:42 /usr/local/bin/python /usr/local/bin/zuul-scheduler -f
zuuld 1893198 1893052 0 08:33 ? 00:03:22 /usr/local/bin/python /usr/local/bin/zuul-scheduler -f
All of the zuul services are run under ``dumb-init``. The process to send
SIGUSR2 to is the child of the ``dumb-init`` process. In the example above
``$ZUUL_PID`` would be ``1893052``.
The first time you run it you will turn on the yappi profiler. This profiler
does incur a runtime cost which can significantly slow down Zuul's processing
of pipelines. Be sure to resend the signal once you have let Zuul run long
enough to collect a representative set of profiler data. In most cases a minute
or two should be sufficient. Slow memory leaks may require hours, but running
Zuul under yappi for hours isn't practical.
.. _zuul_github_projects: .. _zuul_github_projects:
GitHub Projects GitHub Projects