TimestampMonitor listeners should not acquire GlobalLock

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Gone away
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Execution
    • ALL
    • Execution Team 2025-02-17, Storage Execution 2025-03-03, Storage Execution 2025-03-17
    • 200
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      SERVER-98989 changed how StorageEngineImpl::TimestampMonitor listeners are supposed to synchronize with storage engine rollback. Before SERVER-98989 the listeners used the Global Lock, which is an indirect dependency from the storage engine into the catalog that we don't like.

      We now stop the monitor before rollback and restart the monitor afterwards, so that the listeners wouldn't run concurrently with rollback. To stop the monitor, we first try to acquire _monitorMutex before making a copy of the registered listeners, and if the listener runs concurrently and attempts to acquire GlobalLock, there could be deadlocks.

              Assignee:
              Wei Hu
              Reporter:
              Wei Hu
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: