Audit conversion of DBException to Status for correct handling of StorageUnavailableException

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 8.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Storage Execution
    • Fully Compatible
    • Execution Team 2024-10-14, Execution Team 2024-10-28, Execution Team 2024-11-11, Execution Team 2024-11-25
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      There has been a pattern of DBException to Status conversions that leave TemporarilyUnavailable and TransactionTooLargeForCache errors unhandled. See SERVER-81978 and SERVER-80461.

      We should audit locations where this conversion happens. The following lists places that compare the status with ErrorCodes::WriteConflict, so they're potentially susceptible to missing checks for TemporarilyUnavailable and TransactionTooLargeForCache.

      • KeyStringIndexConsistency::traverseIndex (2 locations)
      • IndexBuildsCoordinator::_completeExternalAbort
      • src/mongo/db/ops/write_ops_exec.cpp (3 locations, related to timeseries)
      • OplogApplierUtils::applyOplogEntryOrGroupedInsertsCommon
      • ReshardingOplogApplicationRules::ReshardingOplogApplicationRules
      • timeseries::attemptInsertIntoBucket

              Assignee:
              Stephanie Eristoff
              Reporter:
              Josef Ahmad
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: