ConvertToCappedCoordinator may exit without proper cleanup leaving the critical section held

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • 9.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • Fully Compatible
    • CAR Team 2026-03-30, CAR Team 2026-04-13, CAR Team 2026-04-27, CAR Team 2026-05-11
    • 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:
            Marcos José Grillo Ramirez
            Reporter:
            Meryama Nadim
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: