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

Skip config validation if contents have not changed to avoid isSelf call during reconfig on step up

    • Fully Compatible
    • ALL
    • v4.4
    • Repl 2020-04-20, Repl 2020-05-04
    • 41

      We currently hold the RSTL while doing a reconfig on step up after drain mode completion. This can lead to a deadlock since we call isSelf when we are checking for ourselves in the config during config validation. This isSelf call may try to authenticate via a DBClientConnection call which can trigger a find on a collection that takes a MODE_IS lock. This conflicts with the RSTL and deadlocks.

      To avoid this we can skip config validation and the call to isSelf if the contents of the config (everything except version/term) have not changed, since the step up reconfig doesn't change the contents of the config.

            william.schultz@mongodb.com William Schultz
            william.schultz@mongodb.com William Schultz
            0 Vote for this issue
            3 Start watching this issue