-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
None
-
Affects Version/s: 6.0.20
-
Component/s: Change streams
-
None
-
Query Execution
-
ALL
-
QE 2025-03-03, QE 2025-03-17, QE 2025-03-31, QE 2025-04-14
-
None
-
None
-
None
-
None
-
None
-
None
-
None
The error should be reproducible by the following steps:
- Customer is on 6.0 FCV and opens a change stream with the new option for the fullDocument (post-image) with the kWhenAvailable value
- When opening a change stream we perform feature flag validation, as the option is only available in 6.0 FCV: (https://github.com/10gen/mongo/blob/v6.0/src/mongo/db/pipeline/document_source_change_stream.cpp#L407-L423)
- Customer runs the change stream with the new flag, but later decides to downgrade the FCV, making the new feature no longer available for the currently running change streams
- Customer continues to run the previously opened change stream and issues getMore. When processing the post-image we expect the current feature flag value to be true and throw the tassert() as it is disabled
There are two options on how we can fix this issue:
- replace tassert with a uassert, stating that user has a change stream opened with a 6.0 configuration, but is running on 5.0 FCV
- strive to keep the server robust and do not fail if there is no particular need to. Namely if the change stream is opened with whenAvailable options, then do not fail the server, but rather make pre-/post-images unavailable.