[SERVER-30118] DocumentSourceMergeCursors::doDispose() should not call done() on connections in state between initLazy and initLazyFinish Created: 12/Jul/17 Updated: 30/Oct/23 Resolved: 26/Jul/17 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Aggregation Framework |
| Affects Version/s: | None |
| Fix Version/s: | 3.5.11 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Mathias Stearn | Assignee: | Mathias Stearn |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Backwards Compatibility: | Fully Compatible |
| Operating System: | ALL |
| Sprint: | Repl 2017-07-31 |
| Participants: |
| Description |
|
This has always been illegal, but at the time it was written, dispose() would get called while in that state. However, calling code has changed such that dispose() is now called if start() throws, by way of ClientCursorPin::deleteUnderlying(). |
| Comments |
| Comment by Githook User [ 26/Jul/17 ] |
|
Author: {'email': 'mathias@10gen.com', 'username': 'RedBeard0531', 'name': 'Mathias Stearn'}Message: If DSMergeCursors::start() fails part way through either loop, some |
| Comment by Githook User [ 26/Jul/17 ] |
|
Author: {'email': 'mathias@10gen.com', 'username': 'RedBeard0531', 'name': 'Mathias Stearn'}Message: |
| Comment by Githook User [ 26/Jul/17 ] |
|
Author: {'email': 'mathias@10gen.com', 'username': 'RedBeard0531', 'name': 'Mathias Stearn'}Message: It is now the responsibility of the callers (including the same-named methods |