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

getMore fails to return partial results from find on sharded cluster

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.2.0-rc2, 6.3.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • ALL
    • v6.2
    • Hide

      BF-26792 and BF-26937 reproduce this sporadically.

      To reproduce locally, run jstests/sharding/allow_partial_results_with_maxTimeMS.js repeatedly in a loop until failure. It should fail within about ten runs (10-20 minutes).  To reproduce more readily, change the js test's getMoreBatchSize constant to an odd number, like 47.

      Show
      BF-26792 and BF-26937 reproduce this sporadically. To reproduce locally, run jstests/sharding/allow_partial_results_with_maxTimeMS.js repeatedly in a loop until failure. It should fail within about ten runs (10-20 minutes).  To reproduce more readily, change the js test's getMoreBatchSize constant to an odd number, like 47.
    • QE 2022-11-28
    • 154

      When running a getMore command on a find cursor on a sharded cluster, with the allowPartialResults and maxTimeMS parameters set, we sometimes return a maxTimeMSExpired error even when partial results are available from at least one shard.

      This is related to the functionality introduced in SERVER-57469.

      In these cases, a call to ClusterClientCursorImpl::partialResultsReturned() is unexpectedly returning false because the ClusterClientCursorImpl::next() does not set _maxTimeMSExpired in a case when the BlockingResultsMerger can return a MaxTimeMSExpired error.

            Assignee:
            steve.tarzia@mongodb.com Steve Tarzia
            Reporter:
            steve.tarzia@mongodb.com Steve Tarzia
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: