[SERVER-46740] establishCursors() must always drain the AsyncRequestsSender::_baton Created: 09/Mar/20 Updated: 29/Oct/23 Resolved: 09/Feb/21 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 4.9.0, 4.0.23, 4.4.4, 4.2.13 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Benjamin Caimano (Inactive) | Assignee: | Benjamin Caimano (Inactive) |
| Resolution: | Fixed | Votes: | 3 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||||||||||||
| Backport Requested: |
v4.4, v4.2, v4.0
|
||||||||||||||||||||||||||||
| Sprint: | Service Arch 2020-04-06, Service arch 2020-04-20, Service arch 2020-05-04, Service arch 2020-05-18, Service arch 2020-12-28, Service Arch 2021-01-25, Security 2021-01-25, Security 2021-02-08, Security 2021-02-22 | ||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||
| Case: | (copied to CRM) | ||||||||||||||||||||||||||||
| Linked BF Score: | 46 | ||||||||||||||||||||||||||||
| Description |
|
establishCursors() has a best effort try-catch-throw block here. However, our underlying pattern for the ARS is prone to throwing after interruption. We should introduce a separate draining pattern for the ARS and use it from establishCursors(). This is usually a seen as an invariant in this block in mongo/transport/baton_asio_linux.h:
|
| Comments |
| Comment by Billy Donahue [ 19/Feb/21 ] | ||
|
There are several BFs linked to this commit. (Update: I see they're wfbf and linked to | ||
| Comment by Githook User [ 09/Feb/21 ] | ||
|
Author: {'name': 'Ben Caimano', 'email': 'ben.caimano@10gen.com'}Message: | ||
| Comment by Githook User [ 09/Feb/21 ] | ||
|
Author: {'name': 'Ben Caimano', 'email': 'ben.caimano@10gen.com'}Message: | ||
| Comment by Githook User [ 03/Feb/21 ] | ||
|
Author: {'name': 'Ben Caimano', 'email': 'ben.caimano@10gen.com'}Message: | ||
| Comment by Githook User [ 03/Feb/21 ] | ||
|
Author: {'name': 'Ben Caimano', 'email': 'ben.caimano@10gen.com'}Message: | ||
| Comment by Githook User [ 02/Feb/21 ] | ||
|
Author: {'name': 'Ben Caimano', 'email': 'ben.caimano@10gen.com'}Message: | ||
| Comment by Githook User [ 02/Feb/21 ] | ||
|
Author: {'name': 'Ben Caimano', 'email': 'ben.caimano@10gen.com'}Message: | ||
| Comment by Githook User [ 01/Feb/21 ] | ||
|
Author: {'name': 'Ben Caimano', 'email': 'ben.caimano@10gen.com'}Message: | ||
| Comment by Githook User [ 01/Feb/21 ] | ||
|
Author: {'name': 'Ben Caimano', 'email': 'ben.caimano@10gen.com'}Message: | ||
| Comment by Benjamin Caimano (Inactive) [ 29/Jan/21 ] | ||
|
spencer.brown, I believe our reviews have reached a conclusion. I'll attempt to land my changes on Monday. | ||
| Comment by Spencer Brown [ 29/Jan/21 ] | ||
|
Can anything be done to complete the code reviews and get these fixes into the next point releases of 4.4/4.2/4.0? As you can see from the linked support cases there are a number of customers impacted by this. We have provided the workaround to those we know of, but more customers are going to hit this until it's fixed. | ||
| Comment by Benjamin Caimano (Inactive) [ 18/Nov/20 ] | ||
|
This issue can usually be mitigated on v4.0 by setting these parameters:
See these docs for more details. |