Uploaded image for project: 'Kudu'
  1. Kudu
  2. KUDU-3013

Race in StopTabletITest.TestStoppedTabletsDontWrite

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • test
    • None

    Description

      I met this issue on Jenkins this morning, and it seems there is a race in StopTabletITest.TestStoppedTabletsDontWrite.

      // code placeholder
      TransactionDriver::ApplyTask()                            Tablet::Stop()
                |                                                     |
        transaction_->Apply()                                         |
                |                                                     |
      tablet->ApplyRowOperations(state())                             |
      (RESERVED -> APPLYING)                                          |
                |                                                     |
       StartApplying(tx_state);                                       |
                |                                          set_state_unlocked(kStopped);
        ApplyRowOperation()                                           |
                |                                                     |
      CheckHasNotBeenStoppedUnlocked()                                |
      (return error since the tablet has been stopped)                |
                |                                                     |
          HandleFailure(s)                                            |
                |                                                     |
      transaction_->Finish(Transaction::ABORTED);                     |
                |                                                     |
      state()->CommitOrAbort(result);                                 |
                |                                                     |
      ReleaseMvccTxn(result);                                         |
                |                                                     |
      mvcc_tx_->Abort();                                              |
                |                                                     |
      manager_->AbortTransaction(timestamp_);                         |
                |                                                     |
      if (PREDICT_FALSE(!is_open()))                                  |
                |                                                 mvcc_.Close();
                |                                                     |
                |                                               open_.store(false);
      CHECK_EQ(old_state, RESERVED)                                   |
         (ASSERT failed)
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            helifu LiFu He
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated: