Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-2477

change stream consecutive resume test should use write concern majority

    • Type: Icon: Task Task
    • Resolution: Gone away
    • Priority: Icon: Unknown Unknown
    • None
    • Component/s: Change Streams
    • Labels:
      None
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-4508 Gone away
      CXX-2602 Gone away
      CSHARP-4371 Gone away
      GODRIVER-2592 Gone away
      JAVA-4785 Gone away
      NODE-4737 Gone away
      MOTOR-1051 Gone away
      PYTHON-3479 Gone away
      PHPLIB-1025 Gone away
      RUBY-3161 Done
      RUST-1513 Gone away
      SWIFT-1663 Gone away
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-4508 Gone away CXX-2602 Gone away CSHARP-4371 Gone away GODRIVER-2592 Gone away JAVA-4785 Gone away NODE-4737 Gone away MOTOR-1051 Gone away PYTHON-3479 Gone away PHPLIB-1025 Gone away RUBY-3161 Done RUST-1513 Gone away SWIFT-1663 Gone away

      Summary

      The change stream consecutive resume test (here) fails intermittently in Node because the test inserts documents with write the default write concern instead of majority.

      Change events are not reported by the server until they are majority committed.  The test inserts multiple documents and attempts to iterate the change stream, expecting change events.  If the documents haven't been committed by the time the test attempts to iterate the stream, no change will be reported and the test will fail.

      This only impacts the consecutive resume test and does not impact users because the change event will eventually be reported.  This test specifically sets up fail commands on getMores, so that the getMore fail and the subsequent aggregate call succeeds and returns a change event in the firstBatch.  The race condition is present only because we expect the aggregate to immediately return documents in the firstBatch.

      Motivation

      Who is the affected end user?

      Drivers engineers.

      How does this affect the end user?

      Flakey change stream tests.

      How likely is it that this problem or use case will occur?

      Unsure.  This started failing recently in Node and fails consistently now.

      If the problem does occur, what are the consequences and how severe are they?

      There are no consequences outside of a failing test.

      Is this issue urgent?

      No.

      Is this ticket required by a downstream team?

      No.

      Is this ticket only for tests?

      Only for tests.

            Assignee:
            bailey.pearson@mongodb.com Bailey Pearson
            Reporter:
            bailey.pearson@mongodb.com Bailey Pearson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: