[SERVER-43215] Have a better way to enforce internal threads that acquire strong locks are killed during step up/down Created: 06/Sep/19  Updated: 06/Dec/22  Resolved: 09/Sep/19

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Lingzhi Deng Assignee: Backlog - Replication Team
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-43174 Designate the MigrationDestinationMan... Closed
Related
related to SERVER-43216 Invariant internal operations that ac... Closed
Assigned Teams:
Replication
Participants:

 Description   

Currently, internal operations rely on callingĀ setSystemOperationKillable() to allow themselves to be killed by the RstlKillOpThread on step up/down. This design is error-prone and has resulted in bugs like SERVER-40594 and SERVER-43174.

Instead, we should somehow make the RstlKillOpThread more intelligent on what operations to kill without relying on clients setting the flag. I think we should always kill operations that have intention to acquire strong locks (Mode X/S) because they could be blocked on prepared transactions while holding onto RSTL, preventing step up/down from proceeding.


Generated at Thu Feb 08 05:02:34 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.