- 
    Type:Improvement 
- 
    Resolution: Unresolved
- 
    Priority:Major - P3 
- 
    None
- 
    Affects Version/s: None
- 
    Component/s: 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
- 
        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
 
-