[SERVER-28353] make ARS actually interruptible from the deadline on the OperationContext Created: 16/Mar/17  Updated: 05/Apr/17  Resolved: 23/Mar/17

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: 3.5.5
Fix Version/s: 3.5.5

Type: Bug Priority: Major - P3
Reporter: Esha Maharishi (Inactive) Assignee: Esha Maharishi (Inactive)
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-27937 pull apart the AsyncResultsMerger log... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Sharding 2017-03-27, Sharding 2017-04-17
Participants:
Linked BF Score: 0

 Description   

The AsyncRequestsSender uses Notification::get(OperationContext*), but does not handle exceptions.

Notification::get(OperationContext*) calls OperationContext::waitForConditionOrInterrupt(), which uasserts on the return value of OperationContext::waitForConditionOrInterruptNoAssert().

This uassert generates an exception.

Since it's uncertain whether every path that will use AsyncRequestsSender is exception-safe, the AsyncRequestsSender should try/catch around its use of Notification::get(OperationContext*) and convert the thrown exception back into a status.

Eventually, we may choose to make every path exception-safe.



 Comments   
Comment by Githook User [ 23/Mar/17 ]

Author:

{u'username': u'EshaMaharishi', u'name': u'Esha Maharishi', u'email': u'esha.maharishi@mongodb.com'}

Message: SERVER-28353 make ARS actually interruptible from the deadline on the OperationContext
Branch: master
https://github.com/mongodb/mongo/commit/cb4b8b622f30e4ffdaec101c70b2ab4438d3567a

Generated at Thu Feb 08 04:17:53 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.