diff options
author | Scott Hernandez <scotthernandez@gmail.com> | 2016-09-02 09:39:06 -0400 |
---|---|---|
committer | Scott Hernandez <scotthernandez@gmail.com> | 2016-09-06 09:35:53 -0400 |
commit | 815e16eace8c40db7eed5ad3a6902027f1212e2a (patch) | |
tree | 8f47ab82a54dec10710b76fcb6989980d224dab8 /src/mongo/db/repl/collection_bulk_loader_impl.h | |
parent | b3aba5d4d12a86e18c13db259f64025e74445d3c (diff) | |
download | mongo-815e16eace8c40db7eed5ad3a6902027f1212e2a.tar.gz |
SERVER-25131: release collection/db locks on collection clone failure.
Diffstat (limited to 'src/mongo/db/repl/collection_bulk_loader_impl.h')
-rw-r--r-- | src/mongo/db/repl/collection_bulk_loader_impl.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/mongo/db/repl/collection_bulk_loader_impl.h b/src/mongo/db/repl/collection_bulk_loader_impl.h index 1fa6033a104..b66baeb2bae 100644 --- a/src/mongo/db/repl/collection_bulk_loader_impl.h +++ b/src/mongo/db/repl/collection_bulk_loader_impl.h @@ -84,6 +84,11 @@ public: virtual BSONObj toBSON() const override; private: + void _releaseResources(); + Status _runTaskReleaseResourcesOnFailure( + TaskRunner::SynchronousTask task, + TaskRunner::NextAction nextAction = TaskRunner::NextAction::kKeepOperationContext); + std::unique_ptr<OldThreadPool> _threadPool; std::unique_ptr<TaskRunner> _runner; std::unique_ptr<AutoGetCollection> _autoColl; @@ -91,9 +96,8 @@ private: OperationContext* _txn = nullptr; Collection* _coll = nullptr; NamespaceString _nss; - MultiIndexBlock _idIndexBlock; - MultiIndexBlock _secondaryIndexesBlock; - bool _hasSecondaryIndexes = false; + std::unique_ptr<MultiIndexBlock> _idIndexBlock; + std::unique_ptr<MultiIndexBlock> _secondaryIndexesBlock; BSONObj _idIndexSpec; Stats _stats; }; |