docs: include strace wrapper trick.
This commit is contained in:
parent
b5c14cecda
commit
a302b71f58
|
@ -1076,6 +1076,39 @@ For example, this method can be used to ascertain whether SSH attempted agent
|
|||
authentication, or what private key files it was able to access and which it tried.
|
||||
|
||||
|
||||
Post-authentication Bootstrap Failure
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If logging indicates Mitogen was able to authenticate, but some error occurred
|
||||
after authentication preventing the Python bootstrap from completing, it can be
|
||||
immensely useful to temporarily replace ``ansible_python_interpreter`` with a
|
||||
wrapper that runs Python under ``strace``::
|
||||
|
||||
$ ssh badbox
|
||||
|
||||
badbox$ cat > strace-python.sh
|
||||
#!/bin/sh
|
||||
strace -o /tmp/strace-python.$$ -ff -s 100 python "$@"
|
||||
^D
|
||||
|
||||
badbox$ chmod +x strace-python.sh
|
||||
badbox$ logout
|
||||
|
||||
$ ansible-playbook site.yml \
|
||||
-e ansible_python_interpreter=./strace-python.sh \
|
||||
-l badbox
|
||||
|
||||
This will produce a potentially large number of log files under ``/tmp/``. The
|
||||
lowest-numbered traced PID is generally the main Python interpreter. The most
|
||||
intricate bootstrap steps happen there, any error should be visible near the
|
||||
end of the trace.
|
||||
|
||||
It is also possible the first stage bootstrap failed. That is usually the next
|
||||
lowest-numbered PID and tends to be the smallest file. Even if you can't
|
||||
ascertain the problem with your configuration from these logs, including them
|
||||
in a bug report can save days of detective effort.
|
||||
|
||||
|
||||
.. _diagnosing-hangs:
|
||||
|
||||
Diagnosing Hangs
|
||||
|
|
Loading…
Reference in New Issue