diff --git a/ansible_mitogen/process.py b/ansible_mitogen/process.py index 236e8ab7..e36f173d 100644 --- a/ansible_mitogen/process.py +++ b/ansible_mitogen/process.py @@ -35,6 +35,7 @@ import sys import mitogen import mitogen.core +import mitogen.debug import mitogen.master import mitogen.parent import mitogen.service @@ -145,6 +146,8 @@ class MuxProcess(object): ) if 'MITOGEN_ROUTER_DEBUG' in os.environ: self.router.enable_debug() + if 'MITOGEN_DUMP_THREAD_STACKS' in os.environ: + mitogen.debug.dump_to_logger() def _setup_services(self): """ diff --git a/docs/ansible.rst b/docs/ansible.rst index a737d47f..210e85bf 100644 --- a/docs/ansible.rst +++ b/docs/ansible.rst @@ -648,6 +648,9 @@ is necessary. File-based logging can be enabled by setting When file-based logging is enabled, one file per context will be created on the local machine and every target machine, as ``/tmp/mitogen..log``. +If you are experiencing a hang, ``MITOGEN_DUMP_THREAD_STACKS=1`` causes every +process to dump every thread stack into the logging framework every 5 seconds. + Getting Help ~~~~~~~~~~~~