Refine withTransaction timeout error wrapping semantics and label propagation in spec and prose tests

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Unknown
    • None
    • Component/s: Backpressure
    • None
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-6287 Backlog
      CXX-3460 Fixed 4.3.0
      CSHARP-5958 Works as Designed
      GODRIVER-3853 Done 2.6.0
      JAVA-6160 In Code Review
      NODE-7510 Duplicate
      PYTHON-5788 Done 4.17.0
      PHPLIB-1824 Backlog
      RUBY-3801 Done
      RUST-2396 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 */ } #scriptField td.willNotDo { background-color: #FF0000; /* Red color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-6287 Backlog CXX-3460 Fixed 4.3.0 CSHARP-5958 Works as Designed GODRIVER-3853 Done 2.6.0 JAVA-6160 In Code Review NODE-7510 Duplicate PYTHON-5788 Done 4.17.0 PHPLIB-1824 Backlog RUBY-3801 Done RUST-2396 Backlog

      Summary

      The spec changes introduced in DRIVERS-3391 added Note 1 to the withTransaction Sequence of Actions, describing how timeout errors should be reported. During the review of PR #1899, several areas were identified where the wording could be clearer.

      Clarifications Needed

      1. Only wrap retriable errors with makeTimeoutError
        1. In sections 7.4 & 10.3 of the sequence-of-actions the errors are not retriable, and they are mainly the reason for returning immediately from withTransaction)
      2. Update the prose test to assert that the error labels on the propagated timeout error match the error labels of the wrapped error.
      3. Consistent wording:
        1. Replace SHOULD expose error label(s) from the transient error with a {{SHOULD }} requirement to copy all error labels from the wrapped error to the wrapping timeout error.
        2. Replace "underlying error" with "wrapped error" for consistent terminology.
        3. Replace use of "raise" with "propagate" for consistency.
        4. Turn "Note 1" into a section and reference it.

            Assignee:
            Nabil Hachicha
            Reporter:
            Nabil Hachicha
            Noah Stapp Noah Stapp
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: