-
Type:
Bug
-
Resolution: Done
-
Priority:
Major - P3
-
Affects Version/s: 9.0.0
-
Component/s: Upgrade/Downgrade
-
None
-
Catalog and Routing
-
Fully Compatible
-
ALL
-
v9.0
-
None
-
None
-
None
-
None
-
None
-
None
-
None
[v9.0 only]
[Test only issue]
Issue
The timeseries_insert_mixed_schema_docs.js inserts two measurements and asserts they both fall into the same bucket, this assertion can fail under this very specific interleaving:
- The first measurement is inserted, creating a new bucket.
- The node steps down, clearing the in-memory bucket catalog.
- While inserting the second measurement, the in-memory bucket catalog does not have a bucket, so it will run a query to find a reopening candidate.
- However, viewless timeseries FCV upgrade/downgrade can interrupt this query with InterruptedDueToViewlessTimeseries and cause the reopening to be missed (note the error gets swallowed).
- Due to this, the second measurement creates another bucket rather than re-using the first one.
Proposed fix
We should relax the assertions of the test. It is known and accepted (SERVER-119937) that buckets are generated sub-optimally during viewless timeseries FCV upgrade/downgrade. Not a correctness issue.
Notes
The attached C++ patch deterministically reproduces the failure and proves this is the only affected test in the vulnerable suites (fcv_upgrade_downgrade_primary_step_down_passthrough
and sharding_stepdown_fcv_upgrade_downgrade_jscore_passthrough).
- is related to
-
SERVER-119937 Combination of FCV upgrade/downgrade and retryable write on timeseries collection cause more buckets to be created
-
- Closed
-