-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
ALL
-
Server Serverless 2021-12-13, Server Serverless 2021-12-27
-
24
In the unit test OplogApplierResumesFromLastNoOpOplogEntry, the test inserts 2 no-op entries to opLog and expects the recipient use the timestamp of the second entry to be the opLog applier’s beginApplingOpTime.
But, the test doesn't have any way of knowing where the recipient service thread is when it does those two inserts. It is possible the recipient reads the opLog while only the first entry has been inserted. Here is the related issue BF-23416.
To reproduce the test case issue, add "sleepmillis(5*1000);" just before the second inserting https://github.com/mongodb/mongo/blob/b4517954a706b9f49b17d423f179113aa8632565/src/mongo/db/repl/tenant_migration_recipient_service_test.cpp#L2007
To fix the issue, we will set the fpAfterStartingOplogFetcherMigrationRecipientInstance , and then turn it off after inserting.