mirror of
https://github.com/apache/impala.git
synced 2025-12-19 09:58:28 -05:00
The gdb helpers in impala-gdb.py provide functions to look on the stack for the information added in IMPALA-6416 and get the fragment/query ids. Right now, it is incorrectly using a signed integer, which leads to incorrect ids like this: -3cbda1606b3ade7c:f170c4bd00000000 This changes the logic to AND the integer with an 0xFF* sequence of the right length. This forces the integer to be unsigned, producing the right query id. Testing: - Ran this on a minidump and verified the the listed query ids were valid (and existed in the profile log) Change-Id: I59798407e99ee0e9100cac6b4b082cdb85ed43d1 Reviewed-on: http://gerrit.cloudera.org:8080/21472 Reviewed-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
What is impala-gdb.py?
This is a collection of Python GDB functions (macros) that can be invoked from a GDB session to aid analysis of Impala core dumps.
To use the functions, source impala-gdb.py as follows:
(gdb) source $IMPALA_HOME/lib/python/impala_py_lib/gdb/impala-gdb.py
Currently, the following functions are available:
1. find-query-ids
2. find-fragment-instances
Here's a sample interaction:
(gdb) help find-query-ids
Find IDs of all queries this impalad is currently executing.
(gdb) find-query-ids
f74c863dff66a34d:1d983cc300000000
364525e12495932b:73f5dd0200000000
bc4a3eec25481981:edda04b800000000
(gdb)
(gdb)
(gdb) help find-fragment-instances
Find all query fragment instance to thread Id mappings in this impalad.
(gdb) find-fragment-instances
Fragment Instance Id Thread IDs
364525e12495932b:73f5dd02000000a2 [69]
364525e12495932b:73f5dd0200000171 [196, 136]
bc4a3eec25481981:edda04b8000001a8 [252, 237, 206]
f74c863dff66a34d:1d983cc30000009b [200, 14, 13, 12, 6, 5, 3, 2]
f74c863dff66a34d:1d983cc30000013a [4]
(gdb)