-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
None
-
Affects Version/s: 8.0.24
-
Component/s: Change streams
-
None
-
Query Execution
-
ALL
-
-
None
-
None
-
None
-
None
-
None
-
None
-
None
We have a test in the mongosync codebase that sometimes (extremely rarely) trips an assertion in the server. The test opens a change stream with fullDocument: updateLookup, updates some documents in a collection, then drops that collection.
Sometimes in CI this test fails because the change stream trips a tassert in the server, with an error like:
(Location8884401) Executor error during getMore :: caused by :: Missing _id index on non-clustered collection.
This seems like a bug in the express engine: it seems like it shouldn't be possible to observer a state where a collection exists but does not have an _id index. I would expect the change stream to do what it usually does in the case of a dropped collection, which is simply to return an empty full document and not an error.
(I'm filing this against 8.0.24 because that's the version where I've seen it, but it may also be relevant in older versions.)