Coverity: add GUARDED_BY to TransactionCoordinator and TransactionCoordinatorService state

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Replication
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      What

      Add `GUARDED_BY(_mutex)` to unprotected members in `TransactionCoordinator`, `TransactionCoordinatorService`, and `TransactionCoordinatorFuturesUtil`. Add `REQUIRES(_mutex)` to private helpers.

      Files: `transaction_coordinator.cpp` (lines 479, 533, 570), `transaction_coordinator_service.cpp` (lines 324, 328, 371), `transaction_coordinator_futures_util.h` (line 385), `transaction_coordinator_service.h` (line 169).

      Resolves: SERVER-108434, SERVER-108438, SERVER-108620, SERVER-108880, SERVER-110694, SERVER-110876, SERVER-111619, SERVER-111636, SERVER-112391, SERVER-116204

      Why

      Two-phase commit state must be consistent throughout the coordinator lifecycle; unguarded accesses can cause incorrect commit/abort decisions. Because Coverity cannot be run locally, `GUARDED_BY` annotations give the compiler continuous enforcement — a clean build is proof the locking contract is satisfied, and any future callsite that violates it is caught at build time.

            Assignee:
            Unassigned
            Reporter:
            Denis Trailin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: