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

Hang in HandoffToProbesAndWait() for multithreaded join build

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • Impala 3.4.0
    • Impala 4.0.0
    • Backend

    Description

      I saw a hang triggered by test_failpoints in JoinBuilder::HandofftoProbesAndWait(), where the thread was blocked but build_side_state->is_cancelled_ is true.

      The sequence of events leading to the bug is as follows:

      • Thread A is in HandoffToProbesAndWait(), reads is_cancelled_ and sees false.
      • Thread B in RuntimeState::Cancel() sets is_cancelled_ = true, acquires cancellation_cvs_lock_, then calls NotifyAll() on the condition variable
      • Thread A calls Wait() on the cv, blocks forever.

      I think this is most likely if thread A is de-scheduled at the wrong time.

      Attachments

        Issue Links

          Activity

            People

              tarmstrong Tim Armstrong
              tarmstrong Tim Armstrong
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: