diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2018-07-01 12:52:02 -0400 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2018-07-11 15:42:11 -0400 |
commit | c9c340ad6e9e1f33cb001a8375c62d6b16138c74 (patch) | |
tree | 5b4958fba84fc6a153ae0faadd88688d737eeb1b /src/mongo/db/s/collection_sharding_state.cpp | |
parent | bccb252836954ac1963f8daf0d7bbdcf7af1d01c (diff) | |
download | mongo-c9c340ad6e9e1f33cb001a8375c62d6b16138c74.tar.gz |
SERVER-36054 Remove ScopedCollectionMetadata's operator bool
Diffstat (limited to 'src/mongo/db/s/collection_sharding_state.cpp')
-rw-r--r-- | src/mongo/db/s/collection_sharding_state.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mongo/db/s/collection_sharding_state.cpp b/src/mongo/db/s/collection_sharding_state.cpp index ebbfc83891b..59f5b09f4d2 100644 --- a/src/mongo/db/s/collection_sharding_state.cpp +++ b/src/mongo/db/s/collection_sharding_state.cpp @@ -143,7 +143,7 @@ public: for (auto& coll : _collections) { ScopedCollectionMetadata metadata = coll.second->getMetadata(opCtx); - if (metadata) { + if (metadata->isSharded()) { versionB.appendTimestamp(coll.first, metadata->getShardVersion().toLong()); } else { versionB.appendTimestamp(coll.first, ChunkVersion::UNSHARDED().toLong()); @@ -280,7 +280,7 @@ void CollectionShardingState::checkShardVersionOrThrow(OperationContext* opCtx) // Set this for error messaging purposes before potentially returning false. auto metadata = getMetadata(opCtx); const auto wantedShardVersion = - metadata ? metadata->getShardVersion() : ChunkVersion::UNSHARDED(); + metadata->isSharded() ? metadata->getShardVersion() : ChunkVersion::UNSHARDED(); auto criticalSectionSignal = _critSec.getSignal(opCtx->lockState()->isWriteLocked() ? ShardingMigrationCriticalSection::kWrite @@ -352,8 +352,10 @@ Status CollectionShardingState::waitForClean(OperationContext* opCtx, // not hold reference on it, which would make it appear in use auto metadata = css->_metadataManager->getActiveMetadata(css->_metadataManager, boost::none); - if (!metadata || metadata->getCollVersion().epoch() != epoch) { - return {ErrorCodes::StaleShardVersion, "Collection being migrated was dropped"}; + + if (!metadata->isSharded() || metadata->getCollVersion().epoch() != epoch) { + return {ErrorCodes::ConflictingOperationInProgress, + "Collection being migrated was dropped"}; } } |