diff options
Diffstat (limited to 'jstests/sharding/libs/defragmentation_util.js')
-rw-r--r-- | jstests/sharding/libs/defragmentation_util.js | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/jstests/sharding/libs/defragmentation_util.js b/jstests/sharding/libs/defragmentation_util.js index f416bafa7f7..e9c71aa2de8 100644 --- a/jstests/sharding/libs/defragmentation_util.js +++ b/jstests/sharding/libs/defragmentation_util.js @@ -207,6 +207,13 @@ var defragmentationUtil = (function() { assert.soon(function() { let balancerStatus = assert.commandWorked(mongos.adminCommand({balancerCollectionStatus: ns})); + + if (balancerStatus.balancerCompliant) { + // As we can't rely on `balancerCompliant` due to orphan counter non atomic update, + // we need to ensure the collection is balanced by some extra checks + sh.awaitCollectionBalance(mongos.getCollection(ns)); + } + return balancerStatus.balancerCompliant || balancerStatus.firstComplianceViolation !== 'defragmentingChunks'; }); |