Info
On node startup we call recoverFromOplogUpTo that will try to apply all the oplog entries up to the recoverToOplogTimestamp on top of the last stable checkpoint. This is done by calling _applyOplogOperations in RecoveryMode::kStartupFromStableTimestamp . Only after this first recovery phase has been completed RepllcaSetAwareServiceRegistry::onStartup() will be executed.
All the recoverable critical sections stored on disk are re-installed in-memory as part of the onStartup procedure, so up until that moment we should skip any recoverable CS opObserver actions.
Top User Comments
xgen-internal-githook commented on Fri, 14 May 2021 16:37:18 +0000:
Author:
{'name': 'Tommaso Tocci', 'email': 'tommaso.tocci@mongodb.com', 'username': 'toto-dev'}
Message: SERVER-56910 Skip Recoverable CS opObserver actions during recovery
Branch: master
https://github.com/mongodb/mongo/commit/d424434cec79ba3a13166ae4b69794bbd83cc3e0
Steps to Reproduce
The bug has been spotted on this patch running drop_collection_sharded.js FSM on the concurrency_sharded_multi_stmt_txn_kill_primary suite: