summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlake Oler <blake.oler@mongodb.com>2019-09-09 15:37:57 +0000
committerBlake Oler <blake.oler@mongodb.com>2020-01-16 14:04:21 -0500
commit34279b12c0748a7066a18f94c0b881608936325b (patch)
tree12a3d2df76236c1fd1158b3f628000bee3cd1fea
parentfb87cc88ecb5d300f14cda7bc238d7d5132118f5 (diff)
downloadmongo-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.cpp8
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);