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: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Storage Execution

      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:
            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            josef.ahmad@mongodb.com Josef Ahmad
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: