[SERVER-65360] TemporarilyUnavailable errors incorrectly escape updates and deletes Created: 08/Apr/22  Updated: 29/Oct/23  Resolved: 12/Jul/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 6.1.0-rc0

Type: Bug Priority: Major - P3
Reporter: Louis Williams Assignee: Josef Ahmad
Resolution: Fixed Votes: 0
Labels: phase2
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Initiative
Related
related to SERVER-60839 Introduce a TemporarilyUnavailable er... Closed
related to SERVER-65254 Disable TemporarilyUnavailableExcepti... Closed
related to SERVER-67984 Re-enable TemporarilyUnavailableExcep... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v6.0
Sprint: Execution Team 2022-05-30, Execution Team 2022-06-13, Execution Team 2022-06-27, Execution Team 2022-07-11, Execution Team 2022-07-25
Participants:
Case:

 Description   

Updates and deletes performed by a query currently do not handle TemprorailyUnavailableException as they don't use writeConflictRetry.

This exception should be handled by the server and not reported to the user in the same way we treat it in writeConflictRetry

The assumption that all operations use writeConflictRetry is incorrect, and we will need to make some changes to the query system.



 Comments   
Comment by Githook User [ 13/Jul/22 ]

Author:

{'name': 'Josef Ahmad', 'email': 'josef.ahmad@mongodb.com', 'username': 'josefahmad'}

Message: SERVER-65360 Streamline handlePlanStageYield function signature
Branch: master
https://github.com/mongodb/mongo/commit/81102b83a9b2a6eb8ccf43b64e4c10f1b6d04dd1

Comment by Githook User [ 12/Jul/22 ]

Author:

{'name': 'Josef Ahmad', 'email': 'josef.ahmad@mongodb.com', 'username': 'josefahmad'}

Message: SERVER-65360 Handle TemporarilyUnavailableException in query exec

This change attaches context to the plan executor in order to distinguish
a yield request due to a write conflict from one due to a TemporarilyUnavailable
error, and to handle the two cases accordingly in the query execution code.
Branch: master
https://github.com/mongodb/mongo/commit/abc54d1f92d8ee138856c6c1a6ee0ad0d0c280a1

Generated at Thu Feb 08 06:02:32 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.