Details
-
Bug
-
Resolution: Done
-
Minor - P4
-
None
-
None
-
Fully Compatible
-
ALL
Description
Currently, _reportUpstream_inlock(unique_lock* lock) does not guarantee the state of lock upon return. This makes it harder to reason about code in which we subsequently invoke functions (such as updateTerm_incallback()) that expect to lock the mutex:
replication_coordinator_impl.cpp:443
_reportUpstream_inlock(&lk);
|
_externalState->setGlobalTimestamp(lastOpTime.getTimestamp());
|
// Step down is impossible, so we don't need to wait for the returned event.
|
_updateTerm_incallback(term);
|