Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-77496

[BF-28463] IndexScanStageBase::prepareImpl() tassert(4938500) should be uassert

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 7.1.0-rc0
    • Affects Version/s: 7.1.0-rc0, 7.0.0-rc2
    • Component/s: None
    • Labels:
      None
    • Fully Compatible
    • ALL
    • v7.0
    • 14

      In ix_scan.cpp, IndexScanStageBase::prepareImpl() contains a uassert and some tasserts. tassert(4938500) should actually be a uassert because it is really a valid user-facing failure if the index the plan uses happened to get dropped just before the query tried to use it. The other tasserts are checking things that are programming errors.

      The tassert causes the BF-28463 failure in secondary_reads_with_catalog_changes.js when the timing of this concurrent test is such that the index used by a query plan gets dropped just before the query tries to find that index during execution. Per mihai.andrei@mongodb.com, the Evergreen test harness considers every tassert to be a real test failure even if the test itself expects a failure with that error code (i.e. it's not okay to expect an error code from a programming bug, which is what a tassert denotes). This is not really a programming bug though - in this case the query should just fail gracefully.

            Assignee:
            kevin.cherkauer@mongodb.com Kevin Cherkauer
            Reporter:
            kevin.cherkauer@mongodb.com Kevin Cherkauer
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: