summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Polato <paolo.polato@mongodb.com>2021-05-12 10:52:55 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-06-21 15:14:59 +0000
commitaa716ebc9b4459881540b657986859e6ef3e15c6 (patch)
treedb6e423e0cbc2572dc0774ff4e7ef341a78a5a39
parentc35c05f6e55a44a15972040f8c552a18a7725dfa (diff)
downloadmongo-aa716ebc9b4459881540b657986859e6ef3e15c6.tar.gz
SERVER-56307 Ensure that the estimated size of an object id is always bigger than zero.
(cherry picked from commit 7d0aee4c7dec9380c3ef8be20c31b1334b27cd20)
-rw-r--r--src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp b/src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp
index 6b65ecd7a50..1d13f3728fd 100644
--- a/src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp
+++ b/src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp
@@ -898,7 +898,8 @@ Status MigrationChunkClonerSourceLegacy::_storeCurrentLocs(OperationContext* opC
const uint64_t collectionAverageObjectSize = collection->averageObjectSize(opCtx);
- uint64_t averageObjectIdSize = OID::kOIDSize;
+ uint64_t averageObjectIdSize = 0;
+ const uint64_t defaultObjectIdSize = OID::kOIDSize;
if (totalRecs > 0) {
const auto idIdx = collection->getIndexCatalog()->findIdIndex(opCtx)->getEntry();
if (!idIdx) {
@@ -921,8 +922,8 @@ Status MigrationChunkClonerSourceLegacy::_storeCurrentLocs(OperationContext* opC
}
stdx::lock_guard<Latch> lk(_mutex);
- _averageObjectSizeForCloneLocs = collectionAverageObjectSize + 12;
- _averageObjectIdSize = averageObjectIdSize;
+ _averageObjectSizeForCloneLocs = collectionAverageObjectSize + defaultObjectIdSize;
+ _averageObjectIdSize = std::max(averageObjectIdSize, defaultObjectIdSize);
return Status::OK();
}