Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-7542

find-fragment-instances in impala-gdb.py misses to find the "root threads"

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • Impala 3.1.0
    • None
    • None
    • ghx-label-3

    Description

      find-fragment-instances uses ThreadDebugInfo from IMPALA-6416 to find the query ids and fragment ids currently being executed of an (probably crashed) impalad.

      To achieve that it traverses the stack frames of each thread and searches for the stack frame of Thread::SuperviseThread(). This function has a parent_thread_info parameter that points to its parent thread's ThreadDebugInfo object. Then, checks what instance id the parent thread is working on.

      This is all good until the bottom of the thread hierarchy because threads always work on the same fragment instance that their parent work on.

      However, at the top of the hierarchy there is some "root thread" that starts to work on a fragment instance, but its parent doesn't work on any. Since we only check the parent thread's instance id we miss to catch this first thread.

      Thread::SuperviseThread() also has a local ThreadDebugInfo that contains the proper instance id, so we should use it instead of the parent's.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            boroknagyz Zoltán Borók-Nagy
            boroknagyz Zoltán Borók-Nagy
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment