-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
Fully Compatible
-
v8.0
-
QE 2024-07-22, QE 2024-08-05
-
0
Consider the following:
1. _originalOutOptions field is set to an empty object, because collection doesn't exist (yet): https://github.com/mongodb/mongo/blob/c675b7164d26faa943f7ff576b3be102a239d927/src/mongo/db/pipeline/document_source_out.cpp#L293
2. Another thread creates the output collection.
3. We get to this check: https://github.com/mongodb/mongo/blob/c675b7164d26faa943f7ff576b3be102a239d927/src/mongo/db/pipeline/document_source_out.cpp#L230
Our targetTSOpts because it is based on now outdated _originalOutOptions AND getCollectionType will return that collection now exists.
This causes uassert to fail.
As we allow other multi-threading issues