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

Shell sharding helpers should use wtimeout and respond appropriately



    • Type: Improvement
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.2.9, 3.3.10
    • Component/s: Sharding, Shell
    • Labels:
    • Backwards Compatibility:
      Minor Change
    • Backport Completed:
    • Sprint:
      Sharding 16 (06/24/16), Sharding 17 (07/15/16)


      The following shell sharding helpers use a write concern of w:majority, but do not specify a wtimeout:

      • sh.setBalancerState
      • sh.disableBalancing
      • sh.enableBalancing
      • sh.addShardTag
      • sh.removeShardTag
      • sh.addTagRange
      • sh.removeTagRange

      This means that users get no feedback if the operations are slow to propagate to a majority of config servers.

      Simply adding a wtimeout (eg. 30 or 60s) causes the shell helpers to apparently fail if they take too long. In addition to potentially confusing users, this causes spurious jstest failures.

      The shell helpers should specify a reasonably low wtimeout (eg. 10s), and then if the operation has timed out due to wtimeout, the shell helper should react accordingly, ie. output a message to notify the user what has happened, and commence polling to determine when the write has gone through to a majority (eg. call GLE, if possible, or do appropriate readConcern majority reads).


          Issue Links



              • Votes:
                0 Vote for this issue
                6 Start watching this issue


                • Created: