-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
ALL
-
200
-
None
-
None
-
None
-
None
-
None
-
None
-
None
CursorEstablisher::_waitForResponse() currently handles all exceptions from response processing as isInterruption=true. This includes remote transport failures thrown by uassertStatusOK(swResponse).
In BF-44699 a shard’s InterruptedDueToTimeseriesUpgradeDowngrade (485) caused stopRetrying(), but an already-dispatched retry from another shard later returned IngressRequestRateLimitExceeded (462). Because the transport-level 462 is classified as an interruption, it overrides 485 and is returned to the client without RetryableError. Credit to anja.kalaba@mongodb.com for figuring out the race.
Split response processing so failed remote swResponse statuses are handled as ordinary remote failures (isInterruption=false). Reserve interruption precedence for genuine local interruption/unyield failures.
Add regression coverage proving that an in-flight transport-level 462 does not override the 485 that caused retries to stop.
- is related to
-
SERVER-131819 Make timeseries_upgrade_downgrade_with_crud.js robust to IngressRequestRateLimitExceeded in rate-limited suite
-
- Closed
-
-
SERVER-132290 Make timeseries_reads_setFCV.js robust to IngressRequestRateLimitExceeded in rate-limited suite
-
- Closed
-