summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDewal Gupta <dewal.gupta@10gen.com>2018-08-17 14:48:57 -0400
committerDewal Gupta <dewal.gupta@10gen.com>2018-08-17 14:48:57 -0400
commit022438433d17c0b5ec85a1c4ebb5b7173a8cdab8 (patch)
tree8df3bed043dfb1246216685404f287db8e899c2b
parentdd8ba9ac65719be12b035e5c9868e97c93ff57aa (diff)
downloadmongo-022438433d17c0b5ec85a1c4ebb5b7173a8cdab8.tar.gz
Revert "Merge branch 'v4.0' of github.com:mongodb/mongo into v4.0"
This reverts commit dd8ba9ac65719be12b035e5c9868e97c93ff57aa, reversing changes made to 869931050527d8d0b6955490bb972021151c00b1.
-rw-r--r--src/mongo/db/catalog/collection_catalog_entry.h2
-rw-r--r--src/mongo/db/catalog/index_catalog_entry_impl.cpp14
-rw-r--r--src/mongo/db/catalog/index_catalog_entry_impl.h1
-rw-r--r--src/mongo/db/storage/bson_collection_catalog_entry.cpp7
-rw-r--r--src/mongo/db/storage/bson_collection_catalog_entry.h2
-rw-r--r--src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp6
-rw-r--r--src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h2
7 files changed, 4 insertions, 30 deletions
diff --git a/src/mongo/db/catalog/collection_catalog_entry.h b/src/mongo/db/catalog/collection_catalog_entry.h
index f08085d7710..a55280a6724 100644
--- a/src/mongo/db/catalog/collection_catalog_entry.h
+++ b/src/mongo/db/catalog/collection_catalog_entry.h
@@ -109,8 +109,6 @@ public:
virtual bool isIndexReady(OperationContext* opCtx, StringData indexName) const = 0;
- virtual bool isIndexPresent(OperationContext* opCtx, StringData indexName) const = 0;
-
virtual KVPrefix getIndexPrefix(OperationContext* opCtx, StringData indexName) const = 0;
virtual Status removeIndex(OperationContext* opCtx, StringData indexName) = 0;
diff --git a/src/mongo/db/catalog/index_catalog_entry_impl.cpp b/src/mongo/db/catalog/index_catalog_entry_impl.cpp
index 09859e35b4c..f44e5a0f31e 100644
--- a/src/mongo/db/catalog/index_catalog_entry_impl.cpp
+++ b/src/mongo/db/catalog/index_catalog_entry_impl.cpp
@@ -167,12 +167,10 @@ bool IndexCatalogEntryImpl::isReady(OperationContext* opCtx) const {
// minimumSnapshotVersion on a collection. This means we are unprotected from reading
// out-of-sync index catalog entries. To fix this, we uassert if we detect that the
// in-memory catalog is out-of-sync with the on-disk catalog.
- if (session && session->inMultiDocumentTransaction()) {
- if (!_catalogIsPresent(opCtx) || _catalogIsReady(opCtx) != _isReady) {
- uasserted(ErrorCodes::SnapshotUnavailable,
- str::stream() << "Unable to read from a snapshot due to pending collection"
- " catalog changes; please retry the operation.");
- }
+ if (session && session->inMultiDocumentTransaction() && _catalogIsReady(opCtx) != _isReady) {
+ uasserted(ErrorCodes::SnapshotUnavailable,
+ str::stream() << "Unable to read from a snapshot due to pending collection"
+ " catalog changes; please retry the operation.");
}
DEV invariant(_isReady == _catalogIsReady(opCtx));
@@ -362,10 +360,6 @@ RecordId IndexCatalogEntryImpl::_catalogHead(OperationContext* opCtx) const {
return _collection->getIndexHead(opCtx, _descriptor->indexName());
}
-bool IndexCatalogEntryImpl::_catalogIsPresent(OperationContext* opCtx) const {
- return _collection->isIndexPresent(opCtx, _descriptor->indexName());
-}
-
bool IndexCatalogEntryImpl::_catalogIsMultikey(OperationContext* opCtx,
MultikeyPaths* multikeyPaths) const {
return _collection->isIndexMultikey(opCtx, _descriptor->indexName(), multikeyPaths);
diff --git a/src/mongo/db/catalog/index_catalog_entry_impl.h b/src/mongo/db/catalog/index_catalog_entry_impl.h
index 86fa76c6101..0564c35d7c0 100644
--- a/src/mongo/db/catalog/index_catalog_entry_impl.h
+++ b/src/mongo/db/catalog/index_catalog_entry_impl.h
@@ -170,7 +170,6 @@ private:
class SetHeadChange;
bool _catalogIsReady(OperationContext* opCtx) const;
- bool _catalogIsPresent(OperationContext* opCtx) const;
RecordId _catalogHead(OperationContext* opCtx) const;
/**
diff --git a/src/mongo/db/storage/bson_collection_catalog_entry.cpp b/src/mongo/db/storage/bson_collection_catalog_entry.cpp
index a518884be93..21c1530e00d 100644
--- a/src/mongo/db/storage/bson_collection_catalog_entry.cpp
+++ b/src/mongo/db/storage/bson_collection_catalog_entry.cpp
@@ -190,13 +190,6 @@ RecordId BSONCollectionCatalogEntry::getIndexHead(OperationContext* opCtx,
return md.indexes[offset].head;
}
-bool BSONCollectionCatalogEntry::isIndexPresent(OperationContext* opCtx,
- StringData indexName) const {
- MetaData md = _getMetaData(opCtx);
- int offset = md.findIndexOffset(indexName);
- return offset >= 0;
-}
-
bool BSONCollectionCatalogEntry::isIndexReady(OperationContext* opCtx, StringData indexName) const {
MetaData md = _getMetaData(opCtx);
diff --git a/src/mongo/db/storage/bson_collection_catalog_entry.h b/src/mongo/db/storage/bson_collection_catalog_entry.h
index ea3261350a2..4401c554775 100644
--- a/src/mongo/db/storage/bson_collection_catalog_entry.h
+++ b/src/mongo/db/storage/bson_collection_catalog_entry.h
@@ -72,8 +72,6 @@ public:
virtual bool isIndexReady(OperationContext* opCtx, StringData indexName) const;
- virtual bool isIndexPresent(OperationContext* opCtx, StringData indexName) const;
-
virtual KVPrefix getIndexPrefix(OperationContext* opCtx, StringData indexName) const;
// ------ for implementors
diff --git a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp
index a2a31433a92..865d5fff00f 100644
--- a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp
+++ b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.cpp
@@ -200,12 +200,6 @@ bool NamespaceDetailsCollectionCatalogEntry::isIndexReady(OperationContext* opCt
return idxNo < getCompletedIndexCount(opCtx);
}
-bool NamespaceDetailsCollectionCatalogEntry::isIndexPresent(OperationContext* opCtx,
- StringData idxName) const {
- int idxNo = _findIndexNumber(opCtx, idxName);
- return idxNo >= 0;
-}
-
KVPrefix NamespaceDetailsCollectionCatalogEntry::getIndexPrefix(OperationContext* opCtx,
StringData indexName) const {
return KVPrefix::kNotPrefixed;
diff --git a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h
index 60cba15378b..517128ae26d 100644
--- a/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h
+++ b/src/mongo/db/storage/mmap_v1/catalog/namespace_details_collection_entry.h
@@ -86,8 +86,6 @@ public:
bool isIndexReady(OperationContext* opCtx, StringData indexName) const final;
- bool isIndexPresent(OperationContext* opCtx, StringData indexName) const final;
-
KVPrefix getIndexPrefix(OperationContext* opCtx, StringData indexName) const final;
Status removeIndex(OperationContext* opCtx, StringData indexName) final;