summaryrefslogtreecommitdiff
path: root/jstests/sharding/libs/defragmentation_util.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/sharding/libs/defragmentation_util.js')
-rw-r--r--jstests/sharding/libs/defragmentation_util.js7
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';
});