-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: 9.0.0-rc0, 9.1.0-rc0
-
Component/s: Query Execution
-
None
-
Catalog and Routing
-
Fully Compatible
-
ALL
-
v9.0
-
CAR Team 2026-08-17
-
0
-
🟦 Shard Catalog
-
None
-
None
-
None
-
None
-
None
-
None
Bug: The following interleaving of $out with viewless timeseries FCV upgrade incorrectly returns a NamespaceExists error to the user:
- Cluster is on FCV 8.0 (viewful timeseries).
- The user runs a timeseries $out where the output collection "coll":
- Already exists as a timeseries collection.
- Has non default options (e.g. options:{timeseries: {...},expiresAfterSeconds: 3600}.
- The timeseries $out starts commit and overwrites the output "system.buckets.coll".
- Right after, "system.buckets.coll" is upgraded to viewless format by a FCV upgrade.
- The timeseries $out commit continues and tries to create the timeseries view; this ONLY passes the timeseries options but not the non default options.
- Therefore, it hits a NamespaceExists error because the non-default options (e.g. expiresAfterSeconds) don't match and falls into the _handleTimeseriesCreateError handler.
- This handler then checks if the timeseries options still match and if they do it ignores the error.
- However the code only considers the viewful timeseries case, missing that a viewless timeseries collection with the expected timeseries options already exists.
CommonMongodProcessInterface::_getTimeseriesOptions should consider viewless timeseries as well.
This bug is only for replica sets because the sharded override already considers both.
- is related to
-
SERVER-129958 $out to a time-series collection fails with NamespaceExists when the target is upgraded to viewless concurrently
-
- Closed
-