Loading...
Loading...
TopologyTimeTicker::onNewLocallyCommittedTopologyTimeAvailable is called from three different places: ConfigServerOpObserver::onInserts ConfigServerOpObserver::onUpdate VectorClockMongoD::onConsistentDataAvailable ConfigServerOpObserver::onInserts avoids calling onNewLocallyCommittedTopologyTimeAvailable during initial sync. However, ConfigServerOpObserver::onUpdate does not. Because of that, when a node undergoes initial sync, it could be that onUpdate registers a topology time tick with a commit time CT. If that happens to also be the stopTimestamp of the initial sync, then VectorClockMongoD::onConsistentDataAvailable will be called with commit time also CT. This violates this invariant, as commitTime will be equal to _topologyTimeByLocalCommitTime.crbegin()->first, so the configsvr replica undergoing initial sync will crash.
MongoDB Integration
Learn more about where this data comes from
Bug Scrub Advisor
Streamline upgrades with automated vendor bug scrubs
BugZero Enterprise
Wish you caught this bug sooner? Get proactive today.