Enable tests with getMore on stepdown/kill-primary suites

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • 3
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      Plenty of tests have been disabled from the stepdown and kill-primary suites using the `requires_getmore` tag because getMore may fail due to node restarts.

      The command getMore can't be directly retried because the cursor has already been partially consumed. Hence, we'll need to apply a solution similar to SERVER-102964 in order to retry the entire query operation when a getMore fails.

      Important notes to take into account:

      • Note that the number of commands susceptible to failure is greater than on SERVER-102964. This is because we need to deal with all types of cursor commands (like listCollections), whereas in SERVER-102964 we needed to handle only with query cursor commands (which are find, aggregate and listIndexes).
      • Note that the list of retriable errors in this case will also need to be extended compared to SERVER-102964, having to add errors like CursorNotFound and Interrupted.
      • We'll have to set internalQueryExecYieldPeriodMS back to its default value once QueryPlanKilled error gets retried on all suites.
      • To be able to run getMore inside a transaction generated by network_error_and_txn_override.js, it's necessary to update the code that retries the txn in order to update the cursorId of the retried getMore command. Otherwise, a retried transaction will end up failing with the error 50804 "Cannot run getMore on cursor 8044461389463551599, which was created in transaction 1"

       The tag `requires_getmore` should go away under this ticket in favor of `assumes_no_implicit_cursor_exhaustion`.

            Assignee:
            Unassigned
            Reporter:
            Silvia Surroca
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: