[SERVER-27691] ServiceContext::setKillAllOperations should be replaced with an operation that interrupts running operations Created: 15/Jan/17 Updated: 07/Sep/17 Resolved: 05/Apr/17 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Internal Code |
| Affects Version/s: | None |
| Fix Version/s: | 3.4.4, 3.5.6 |
| Type: | New Feature | Priority: | Major - P3 |
| Reporter: | Andy Schwerin | Assignee: | Kaloian Manassiev |
| Resolution: | Done | Votes: | 0 |
| Labels: | bkp | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Backport Requested: |
v3.4
|
||||||||||||||||
| Sprint: | Sharding 2017-04-17 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Linked BF Score: | 0 | ||||||||||||||||
| Description |
|
During shutdown, mongod and mongos call ServiceContext::setKillAllOperations to prevent new operations from meaningfully starting, and to interrupt existing running operations. Unfortunately, the latter class of operation may not be interrupted if they're blocked in an interruptible condition variable wait because setKillAllOperations does not wake such threads. ServiceContext::setKillAllOperations should be replaced with a behavior that more aggressively prevents the creation of new OperationContexts (say by throwing in their constructor) as well as sending kill messages to running operations. |
| Comments |
| Comment by Githook User [ 06/Apr/17 ] |
|
Author: {u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}Message: (cherry picked from commit 8765acc0fcc6ca3dd7158521ba8d864af4e0f2df) |
| Comment by Githook User [ 05/Apr/17 ] |
|
Author: {u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}Message: |