ExportXMLWordPrintableJSON

    • Type: Bug
    • Resolution: Done
    • Priority: Major - P3
    • 9.0.5
    • 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:

      1. The first measurement is inserted, creating a new bucket.
      2. The node steps down, clearing the in-memory bucket catalog.
      3. 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.
      4. However, viewless timeseries FCV upgrade/downgrade can interrupt this query with InterruptedDueToViewlessTimeseries and cause the reopening to be missed (note the error gets swallowed).
      5. 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).

            Assignee:
            Joan Bruguera Micó
            Reporter:
            Joan Bruguera Micó
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: