Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-81979

Audit conversion of DBException to Status for correct handling of StorageUnavailableException

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 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

      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@mongodb.com Stephanie Eristoff
            Reporter:
            josef.ahmad@mongodb.com Josef Ahmad
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: