Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-94771

OldestActiveTxnTimestamp thread should be interruptible by step up/stepdown

    • Type: Icon: Bug Bug
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Replication
    • ALL
    • Repl 2024-09-30, Repl 2024-10-14, Repl 2024-10-28, Repl 2024-11-11

      The OldestActiveTxnTimestamp thread takes a db lock in IS mode, which results in it taking the global lock in IS mode as well as the RSTL in IX mode.
      The AutoGetRSTLForStepUpStepDown only kills conflicting operations if they took the global lock in X, IX, or S mode, so it wouldn't kill this thread. It seems like we should mark the OldestActiveTxnTimestamp thread as interruptible during stepup/stepdown, and additionally check for interrupt in this loop, since it's possible that going through all the active transactions would take longer than the RSTL timeout period of 30 seconds, causing the AutoGetRSTLForStepUpStepDown to fassert.

            Assignee:
            huayu.ouyang@mongodb.com Huayu Ouyang
            Reporter:
            huayu.ouyang@mongodb.com Huayu Ouyang
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated: