ConvertToCappedCoordinator may exit without proper cleanup leaving the critical section held

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • 2
    • 🟥 DDL
    • None
    • None
    • None
    • None
    • None
    • None

      ConvertToCappedCoordinator has _mustAlwaysMakeProgress() returning false during phases where critical section is already held. If a non-retriable error occurs in these phases AND cleanup fails before persisting the abort reason, the coordinator gives up without cleaning up, leaving critical sections held indefinitely.

      Failure scenario

      • Coordinator acquires critical section at kAcquireCriticalSectionOnCoordinator.
      • Failure occurs at a later phase where _mustAlwaysMakeProgress() is still false.
      • triggerCleanup is called but fails before persisting the abort reason.
      • Coordinator gives up (no retry because _mustAlwaysMakeProgress() is false).
      • Critical section remains held, blocking CRUD operations indefinitely.

       

            Assignee:
            Unassigned
            Reporter:
            Meryama Nadim
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: