diff options
| author | Spencer T Brody <spencer@mongodb.com> | 2016-08-24 15:56:55 -0400 |
|---|---|---|
| committer | Spencer T Brody <spencer@mongodb.com> | 2016-08-26 16:55:38 -0400 |
| commit | 6bf9fd2e5a5f043b950cb77361be3c1ed7a7d0af (patch) | |
| tree | dd6d2cdcf3d3ef2eee3d156b3417b116d2f5ef3b /src/mongo/s/cluster_identity_loader.cpp | |
| parent | a4a9a9ad29415239091db171e01f45677464f668 (diff) | |
| download | mongo-6bf9fd2e5a5f043b950cb77361be3c1ed7a7d0af.tar.gz | |
SERVER-25677 Clear cached clusterId if config.version document is rolled back.
Diffstat (limited to 'src/mongo/s/cluster_identity_loader.cpp')
| -rw-r--r-- | src/mongo/s/cluster_identity_loader.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mongo/s/cluster_identity_loader.cpp b/src/mongo/s/cluster_identity_loader.cpp index dc2ae335f94..741a280ab4c 100644 --- a/src/mongo/s/cluster_identity_loader.cpp +++ b/src/mongo/s/cluster_identity_loader.cpp @@ -105,4 +105,16 @@ StatusWith<OID> ClusterIdentityLoader::_fetchClusterIdFromConfig( return loadResult.getValue().getClusterId(); } +void ClusterIdentityLoader::discardCachedClusterId() { + stdx::lock_guard<stdx::mutex> lk(_mutex); + + if (_initializationState == InitializationState::kUninitialized) { + return; + } + invariant(_initializationState == InitializationState::kInitialized); + _lastLoadResult = { + Status{ErrorCodes::InternalError, "cluster ID never re-loaded after rollback"}}; + _initializationState = InitializationState::kUninitialized; +} + } // namespace mongo |
