Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-70127

Default system operations to be killable by stepdown

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 7.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Replication
    • Fully Compatible
    • Repl 2023-03-06, Repl 2023-03-20, Repl 2023-05-01
    • 135

      There are currently 30ish non-test calls to setSystemOperationKillableByStepdown(). Every time we introduce a new thread, there’s a non-obvious requirement to call that function.

      Failing to do so results in the process crashing if the operation hits a prepare conflict. This is a rare occurence, which means we risk not catching crashing bugs in testing. In addition to the visual clutter, the API risks that developers create new internal threads that are unkilllable when they shouldn't be.

      It seems that there are only a few system operations that actually need to be unkilllable and the vast majority of all threads should be killable.

      We should consider changing the default such that system operations are always killable and have the limited set of special operations explicitly opt-in to being unkillable.

            jiawei.yang@mongodb.com Jiawei Yang
            louis.williams@mongodb.com Louis Williams
            1 Vote for this issue
            12 Start watching this issue