Info
In the commit quorum helper function addIndexBuildEntry, we reserve a slot in the oplog to perform an insertion. This can cause an out-of-order oplog insertion assertion to be hit.
Top User Comments
xgen-internal-githook commented on Fri, 17 Apr 2020 19:23:47 +0000:
Author:
{'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}
Message: SERVER-47630 Reserving a slot in the oplog for addIndexBuildEntry can cause an out-of-order oplog insertion for ephemeralForTest
(cherry picked from commit c1fad54e1821500fec2121d2e31a591069bc053d)
Branch: v4.4
https://github.com/mongodb/mongo/commit/b3ade64366311783f002d83b5b6ab746608339b0
xgen-internal-githook commented on Fri, 17 Apr 2020 19:06:07 +0000:
Author:
{'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}
Message: SERVER-47630 Reserving a slot in the oplog for addIndexBuildEntry can cause an out-of-order oplog insertion for ephemeralForTest
Branch: master
https://github.com/mongodb/mongo/commit/c1fad54e1821500fec2121d2e31a591069bc053d
suganthi.mani commented on Fri, 17 Apr 2020 16:24:05 +0000:
It seems ephermeralForTest doesn't handle oplog holes like WT.
FYI, We do reserve oplog slots for batch inserts (like addIndexBuildEntry) before inserting documents to user collection. The Batch insert code path was able to survive in ephemeralForTest storage negine because of this magic check supportsDocLocking() which is missing in addIndexBuildEntry().
gregory.wlodarek commented on Fri, 17 Apr 2020 16:18:21 +0000:
Correct, only for emphemeralForTest, so it's probably to do with how that storage engine manages oplog holes.
suganthi.mani commented on Fri, 17 Apr 2020 16:12:56 +0000:
I think this assertion happens ONLY on ephermeralForTest storage engines due this error msg. gregory.wlodarek correct me If I am wrong?