-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: 4.4.0-rc0, 4.5.1
-
Component/s: Replication
-
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.
- is related to
-
SERVER-47545 isSelf should consider any host address in the 127.0.0.1/8 range as the loopback interface
- Closed
- related to
-
SERVER-47504 Prepopulate state for AuthzSessionExternalStateServerCommon::_checkShouldAllowLocalhost
- Closed