Consider more thorough defences against cache-pressure-eviction blocking shutdown

XMLWordPrintableJSON

    • 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.

            Assignee:
            Unassigned
            Reporter:
            Nic Hollingum
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: