Joe McDonnell created IMPALA-13230:
--------------------------------------

             Summary: Add a way to dump stack traces for impala-shell while it 
is running
                 Key: IMPALA-13230
                 URL: https://issues.apache.org/jira/browse/IMPALA-13230
             Project: IMPALA
          Issue Type: Task
          Components: Clients
    Affects Versions: Impala 4.5.0
            Reporter: Joe McDonnell


It can be useful to get the Python stack traces for impala-shell when it is 
stuck. There is a nice thread on Stack Overflow about how to do this: 
[https://stackoverflow.com/questions/132058/showing-the-stack-trace-from-a-running-python-application]

One option is to install a signal handler for the SIGUSR1 signal and use that 
to dump a backtrace. I tried this and it works for Python 3 (but causes issues 
for running queries on Python 2):
{noformat}
    # For debugging, it is useful to handle the SIGUSR1 symbol and use it to 
print a
    # stacktrace
    signal.signal(signal.SIGUSR1, lambda sid, stack: 
traceback.print_stack(stack)){noformat}
Another option mentioned is the faulthandler module 
([https://docs.python.org/dev/library/faulthandler.html|https://docs.python.org/dev/library/faulthandler.html)]
 ), which provides a way to do the same thing. The faulthandler module seems to 
be able to do this for all threads, not just the main thread.

Either way, this would give us some options if we need to debug impala-shell 
out in the wild.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to