[SERVER-42634] RSM can receive requests (that won't be failed) after drop() Created: 05/Aug/19 Updated: 29/Oct/23 Resolved: 09/Aug/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Internal Code |
| Affects Version/s: | None |
| Fix Version/s: | 4.3.1 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Mira Carey | Assignee: | Mira Carey |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Sprint: | Service Arch 2019-08-12, Service Arch 2019-08-26 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Linked BF Score: | 39 | ||||||||||||||||
| Description |
|
The RSM theoretically has a contract that all waiter-promises are fulfilled with an unsatisfied read preference error on drop(). It also supposes that after being removed from the RSM Manager that no new promises can be added. But there's a race that goes something like this:
This can lead to a situation where we add waiter to the rsm after a drop (and with no obvious path forward towards not needing to break that added promise) — The fix is to:
This should ensure that removing a RSM from a manager is the same as dropping one and that drops serialize with calls to get (so that waiters can't race in during shutdown). |
| Comments |
| Comment by Githook User [ 09/Aug/19 ] | ||||||||||||||||
|
Author: {'name': 'Jason Carey', 'email': 'jcarey@argv.me', 'username': 'hanumantmk'}Message: The RSM theoretically has a contract that all waiter-promises are But there's a race that goes something like this:
=======================================================================
======================================================================= This can lead to a situation where we add waiter to the rsm after a drop — The fix is to:
This should ensure that removing a RSM from a manager is the same as |