Impala Public Jenkins has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/9053 )
Change subject: IMPALA-6416: extend Thread::Create to track instance id ...................................................................... IMPALA-6416: extend Thread::Create to track instance id This commit builds upon IMPALA-3703. Each thread that was created through Thread::Create() has a ThreadDebugInfo object on the stack frame of Thread::SuperviseThread(). This object has stack allocated char buffers that can be read during a debug session even if we only have minidumps. However, with the old solution ThreadDebugInfo::instance_id was set manually for each thread. It is too easy to forget to set instance_id every time we create a new thread. This commit has the assumption that if a thread has an instance id associated, then the threads spawned by it will always work on the same instance id. In Thread::StartThread the parent thread passes its ThreadDebugInfo object to its child who copies the instance id, and also stores the name and system thread id of its parent. This means if we set ThreadDebugInfo::instance_id in some "root thread", then all descendant threads will annotate themselves with the instance id automatically. Since threads also record the name (and a system thread id) of their parent, it might be also possible to reconstruct the thread creation graph. With GDB I tested if it copies the instance id at every place where we previously needed to set it manually. I added an automated test to thread-debug-info-test.cc Change-Id: I27de2962cf0b224c17b685d77dcba3bf2e9db187 Reviewed-on: http://gerrit.cloudera.org:8080/9053 Reviewed-by: Dan Hecht <[email protected]> Tested-by: Impala Public Jenkins --- M be/src/common/thread-debug-info-test.cc M be/src/common/thread-debug-info.cc M be/src/common/thread-debug-info.h M be/src/exec/blocking-join-node.cc M be/src/exec/hdfs-scan-node.cc M be/src/runtime/fragment-instance-state.cc M be/src/util/thread.cc M be/src/util/thread.h 8 files changed, 75 insertions(+), 25 deletions(-) Approvals: Dan Hecht: Looks good to me, approved Impala Public Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/9053 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I27de2962cf0b224c17b685d77dcba3bf2e9db187 Gerrit-Change-Number: 9053 Gerrit-PatchSet: 9 Gerrit-Owner: Zoltan Borok-Nagy <[email protected]> Gerrit-Reviewer: Dan Hecht <[email protected]> Gerrit-Reviewer: Impala Public Jenkins Gerrit-Reviewer: Lars Volker <[email protected]> Gerrit-Reviewer: Tim Armstrong <[email protected]> Gerrit-Reviewer: Zoltan Borok-Nagy <[email protected]>
