diff options
author | Blake Oler <blake.oler@mongodb.com> | 2019-09-09 15:37:57 +0000 |
---|---|---|
committer | Blake Oler <blake.oler@mongodb.com> | 2020-01-16 14:04:21 -0500 |
commit | 34279b12c0748a7066a18f94c0b881608936325b (patch) | |
tree | 12a3d2df76236c1fd1158b3f628000bee3cd1fea | |
parent | fb87cc88ecb5d300f14cda7bc238d7d5132118f5 (diff) | |
download | mongo-34279b12c0748a7066a18f94c0b881608936325b.tar.gz |
SERVER-43195 Add namespace to ChunkManager ShardKeyNotFound errors in order to better diagnose failures
(cherry picked from commit 20761c26375cd0febaade9d93af5b8848845bef9)
-rw-r--r-- | src/mongo/s/chunk_manager.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mongo/s/chunk_manager.cpp b/src/mongo/s/chunk_manager.cpp index e1432fe4081..f0b7042b398 100644 --- a/src/mongo/s/chunk_manager.cpp +++ b/src/mongo/s/chunk_manager.cpp @@ -95,14 +95,18 @@ Chunk ChunkManager::findIntersectingChunk(const BSONObj& shardKey, const BSONObj for (BSONElement elt : shardKey) { uassert(ErrorCodes::ShardKeyNotFound, str::stream() << "Cannot target single shard due to collation of key " - << elt.fieldNameStringData(), + << elt.fieldNameStringData() + << " for namespace " + << getns().toString(), !CollationIndexKey::isCollatableType(elt.type())); } } const auto it = _rt->getChunkMap().upper_bound(_rt->_extractKeyString(shardKey)); uassert(ErrorCodes::ShardKeyNotFound, - str::stream() << "Cannot target single shard using key " << shardKey, + str::stream() << "Cannot target single shard using key " << shardKey + << " for namespace " + << getns().toString(), it != _rt->getChunkMap().end() && it->second->containsKey(shardKey)); return Chunk(*(it->second), _clusterTime); |