-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Engines, Storage Engines - Server Integration
-
PastaLaVista - 2025-03-18, pro-duck-tive - 2025-04-01, meow meow meow - 2025-04-15, RSS Sydney - 2025-04-29, Bananini - 2025-05-13, GoodbyeRSSs - 2025-06-10, SESI - 2025-06-24, SESI - 2025-07-08, SESI - 2025-08-05
-
None
-
3
-
TBD
-
None
-
None
-
None
-
None
-
None
-
None
-
None
When an inactive transaction (i.e. one which is stashed as a TransactionParticipant) is aborted, it does so with the opCtx of the aborting thread, e.g. the RstlKillOpThread. Since these opctx's are not themselves marked killed, only `setNoEvictionAfterCommitOrRollback` can prevent them from being roped into eviction during shutdown, If we forget to do that, a stall occurs.
We can solve this ad-hoc by remembering to set that property on opctx's that might run as part of shutdown, however this is not a thorough defence, since it only works if we remember to apply it.
For a thorough defence, something like an invariant that enforces: "any abort that occurs during shutdown has either been killed or NoEvictionAfterCommitOrRollback" would work.
- split from
-
SERVER-98122 Test that active and inactive multi-document transactions are aborted when the storage engine is under cache pressure
-
- Closed
-