diff options
author | Paolo Polato <paolo.polato@mongodb.com> | 2022-07-27 08:08:54 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-07-27 09:19:21 +0000 |
commit | d7bb81289860fb1dd7bc4424d573c7295ad36a5d (patch) | |
tree | 2480764bbd4db72fb5787d99d253d446ea402c80 /src/mongo/s | |
parent | 292bfe86c90c142e179c5c55eef32c79a1722eef (diff) | |
download | mongo-d7bb81289860fb1dd7bc4424d573c7295ad36a5d.tar.gz |
SERVER-67940 Raise invariant if ShardRegistry is refreshed while holding opCtx locks
Diffstat (limited to 'src/mongo/s')
-rw-r--r-- | src/mongo/s/client/shard_registry.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mongo/s/client/shard_registry.cpp b/src/mongo/s/client/shard_registry.cpp index c4b5f0f62f6..3ae0325c02f 100644 --- a/src/mongo/s/client/shard_registry.cpp +++ b/src/mongo/s/client/shard_registry.cpp @@ -124,6 +124,10 @@ ShardRegistry::Cache::LookupResult ShardRegistry::_lookup(OperationContext* opCt const Cache::ValueHandle& cachedData, const Time& timeInStore) { invariant(key == _kSingleton); + // This function can potentially block for a long time on network activity, so holding of locks + // is disallowed. + invariant(!opCtx->lockState() || !opCtx->lockState()->isLocked()); + auto lastForcedReloadIncrement = _forceReloadIncrement.load(); |