diff options
author | Bryn M. Reeves <bmr@redhat.com> | 2018-09-07 12:15:10 -0400 |
---|---|---|
committer | Bryn M. Reeves <bmr@redhat.com> | 2018-09-10 15:43:53 +0100 |
commit | 9aaba972bf6a42c33ea9bca80f07bfb880ba45a1 (patch) | |
tree | 3de02015473f235ce671a979222d50c355bdbaa9 /po/pl.po | |
parent | 5d6228b85e174dee8abcc4c206a1e9034242c6c6 (diff) | |
download | sos-9aaba972bf6a42c33ea9bca80f07bfb880ba45a1.tar.gz |
[sosreport] trap directly to PDB in handle_exception()
Now that plugins are run in a threadpool, it is not possible to
defer the call to pdb.post_mortem() to the top-level exception
handler in the main thread: this is due to the fact that in a pool,
exceptions are caught and saved to be re-raised to thread calling
the pool when results are returned. When the saved exception is
raised to the top-level handler the execution context it relates
to is gone: the backtrace and stack frame have been torn down and
only very limited information is available from the exception
frame.
Instead, catch these exceptions _inside_ the thread pool context,
and directly trap to the Python debugger. This allows plugin code
to be debugged interactively with the full backtrace and with all
access to local variables and the execution stack. In addition,
this means that after the debugger has handled the exception it is
possible to return to the run and continue until report completion.
One side effect of this change is that the *-plugin-errors.txt
file containng the backtrace is now written into the archive
whether or not --debug is given.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
Diffstat (limited to 'po/pl.po')
0 files changed, 0 insertions, 0 deletions