diff options
author | Pierlauro Sciarelli <pierlauro.sciarelli@mongodb.com> | 2020-09-09 15:06:30 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-09-10 08:23:25 +0000 |
commit | 9dac088a96526c9f2854d09d55125c8a76e9de71 (patch) | |
tree | f80b742c7c384ebec8862cf68ab13254fc9f6b6c /src/mongo/db/s | |
parent | 57cb74336b8d6a64b4d4ce5e3c34baa0534fabfb (diff) | |
download | mongo-9dac088a96526c9f2854d09d55125c8a76e9de71.tar.gz |
SERVER-50853 Enable retries of getShardAndCollectionVersion on the config server
Diffstat (limited to 'src/mongo/db/s')
-rw-r--r-- | src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp b/src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp index 3e2b4e0f8c7..2d40f65eaed 100644 --- a/src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp +++ b/src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp @@ -335,12 +335,14 @@ BSONObj getShardAndCollectionVersion(OperationContext* opCtx, ChunkVersion shardVersion; if (!swDonorShardVersion.isOK()) { - // The query to find 'nss' chunks belonging to the donor shard didn't return any, meaning - // the last chunk was donated - uassert(505770, - str::stream() << "Couldn't retrieve donor chunks from config server", - swDonorShardVersion.getStatus().code() == 50577); - shardVersion = ChunkVersion(0, 0, collectionVersion.epoch()); + if (swDonorShardVersion.getStatus().code() == 50577) { + // The query to find 'nss' chunks belonging to the donor shard didn't return any chunks, + // meaning the last chunk for fromShard was donated. Gracefully handle the error. + shardVersion = ChunkVersion(0, 0, collectionVersion.epoch()); + } else { + // Bubble up any other error + uassertStatusOK(swDonorShardVersion); + } } else { shardVersion = swDonorShardVersion.getValue(); } |