Shard remains in draining state after removeShard()

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Minor - P4
    • None
    • Affects Version/s: 7.0.26
    • Component/s: None
    • ALL
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      I wanted to remove a Shard but after running

      db.adminCommand({ removeShard: 'shard_07'})

       draining started but never finished. 

       

      After some time I found the reason. For some collections I did a sh.disableBalancing('<namespace>') which caused the draining to hang.

      Of course, this behavior is not a bug, however the user does not get any indication why shard removing never finishes.

      It should be reflected in the output of removeShard command, maybe like this:

      {
        msg: 'draining ongoing',
        state: 'ongoing',
        remaining: { chunks: Long('28'), dbs: Long('0'), jumboChunks: Long('0') },
        note: 'you need to drop or movePrimary these databases',
        dbsToMove: [],
        balancer_note: 'you need to enableBalancing on these collections',
        lockedCollections: ['data.sessions.20251112']
        ok: 1
      }
       

       

      At least, it should be mentioned in the documentation Remove Shards from a Sharded Cluster. Maybe like this:

      Steps

      1. Ensure the balancer is enabled
        ...
      2. Ensure balancing is enabled on collections
        Run command
        db.getSiblingDB("config").collections.find({noBalance: true})

        If output is not empty, then run sh.enableBalancing('<namespace>') on these collections

      1.  
        Migrate sharded collection data with the balancer
        ...

       

       

            Assignee:
            Unassigned
            Reporter:
            Wernfried Domscheit
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: