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

Make `ftdc_mirrored_reads.js` wait for FTDC to converge

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 7.0.0-rc0
    • None
    • Internal Code
    • None
    • Service Arch
    • Fully Compatible
    • ALL
    • Service Arch 2023-01-23, Service Arch 2023-02-06, Service Arch 2023-02-20
    • 5

    Description

      This is a test only issue, currently only concerning Windows variants. The following assertion is sensitive to the number of reads successfully mirrored by the primary, and observed on secondaries:

          ...
          jsTestLog("Verifying diagnostic collection for mirrored reads on secondaries");
          let mirroredReadsSucceeded = getDiagnosticData(primary).succeeded;
          let mirroredReadsProcessedAfter = getMirroredReadsProcessedAsSecondary();
          assert.eq(mirroredReadsSucceeded, mirroredReadsProcessedAfter - mirroredReadsProcessedBefore);
      }
      rst.stopSet();
      })();
      

      Currently, the test captures FTDC on all members of the replica-set after completing the load operations, which makes the test sensitive to any temporary inaccuracies. This is the case to all linked failures, as shown by the following figure, where the number of processed reads on s0 drops to zero (due to a temporary issue in collected FTDC metrics) and goes back to 200 later on:

      A possible solution is to use assert.soon to ensure all mirrored operations are processed on secondaries, thus tolerating temporary issues with collecting FTDC.

      Attachments

        Activity

          People

            jason.chan@mongodb.com Jason Chan
            amirsaman.memaripour@mongodb.com Amirsaman Memaripour
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: