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

Require 4.3.1+ server version when using failCommand errorLabels option

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Unknown Unknown
    • None
    • Component/s: Unified Test Runner
    • None
    • Needed
    • Hide

      Sync the following spec tests with mongodb/specifications@8de8180:

      • Client-side Operations Timeout
      • Command Logging and Monitoring
      • Retryable Writes (legacy and unified)
      • Transactions (legacy)
      • Transactions Convenient API
      • Unified Test Format (valid-pass)

      Update retryable writes prose test #3 to account for moving errorLabels to the top-level of the fail point configuration. Additionally, confirm that server version requirements for all modified prose tests are accurate.

      Show
      Sync the following spec tests with mongodb/specifications@8de8180 : Client-side Operations Timeout Command Logging and Monitoring Retryable Writes (legacy and unified) Transactions (legacy) Transactions Convenient API Unified Test Format (valid-pass) Update retryable writes prose test #3 to account for moving errorLabels to the top-level of the fail point configuration. Additionally, confirm that server version requirements for all modified prose tests are accurate.
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-4806 Fixed 1.26.0
      CXX-2808 Backlog
      CSHARP-4899 Backlog
      GODRIVER-3085 Backlog
      JAVA-5283 Done
      NODE-5808 Backlog
      MOTOR-1230 Duplicate
      PYTHON-4117 Fixed 4.7
      PHPLIB-1330 Fixed 1.18.0
      RUBY-3366 Backlog
      RUST-1818 Backlog
      $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-4806 Fixed 1.26.0 CXX-2808 Backlog CSHARP-4899 Backlog GODRIVER-3085 Backlog JAVA-5283 Done NODE-5808 Backlog MOTOR-1230 Duplicate PYTHON-4117 Fixed 4.7 PHPLIB-1330 Fixed 1.18.0 RUBY-3366 Backlog RUST-1818 Backlog

      Summary

      Various spec tests (both legacy and unified) utilize the errorLabels option for the failCommand fail point without requiring server version 4.3.1+, which is when the option was first implemented (SERVER-43941). Some of this dates back to commits for DRIVERS-1385, when errorLabels was relocated from the writeConcernError field to the top-level of the fail point config.

      I came across this issue while implementing DRIVERS-1641, which changes drivers to no longer inspect writeConcernError.code on pre-4.4 mongos responses and instead rely entirely on the server-populated error labels. On versions of mongos prior to 4.3.1, those error labels may not be populated due to failCommand ignoring the errorLabels option used in the test.

      We should also note this requirement in the Unified Test Format spec, which documents the failCommand fail point.

      Motivation

      Is this issue urgent?

      Requirement for DRIVERS-1641.

      Is this ticket required by a downstream team?

      No.

      Is this ticket only for tests?

      Yes.

            Assignee:
            jmikola@mongodb.com Jeremy Mikola
            Reporter:
            jmikola@mongodb.com Jeremy Mikola
            Andreas Braun Andreas Braun
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: