summaryrefslogtreecommitdiff
path: root/src/mongo/db/catalog
diff options
context:
space:
mode:
authorDianna <dianna.hohensee@10gen.com>2019-04-26 13:28:01 -0400
committerDianna <dianna.hohensee@10gen.com>2019-04-30 16:50:00 -0400
commit11681d3507d05bf2c5b7873d96239b3bbfbca0dd (patch)
treec002cb9a67a15b5bc6d7113a7cc275fd8b94051c /src/mongo/db/catalog
parentcad0509bf1a5ad7b922de7fd80121534504df081 (diff)
downloadmongo-11681d3507d05bf2c5b7873d96239b3bbfbca0dd.tar.gz
SERVER-39424 Test that a DDL op started after a prepared transaction fails during shutdown
Diffstat (limited to 'src/mongo/db/catalog')
-rw-r--r--src/mongo/db/catalog/drop_collection.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mongo/db/catalog/drop_collection.cpp b/src/mongo/db/catalog/drop_collection.cpp
index d48064b8ffc..6cf54a572ad 100644
--- a/src/mongo/db/catalog/drop_collection.cpp
+++ b/src/mongo/db/catalog/drop_collection.cpp
@@ -49,6 +49,7 @@
namespace mongo {
+MONGO_FAIL_POINT_DEFINE(hangDropCollectionBeforeLockAcquisition);
MONGO_FAIL_POINT_DEFINE(hangDuringDropCollection);
Status _dropView(OperationContext* opCtx,
@@ -155,6 +156,10 @@ Status dropCollection(OperationContext* opCtx,
log() << "CMD: drop " << collectionName;
}
+ if (MONGO_FAIL_POINT(hangDropCollectionBeforeLockAcquisition)) {
+ log() << "Hanging drop collection before lock acquisition while fail point is set";
+ MONGO_FAIL_POINT_PAUSE_WHILE_SET(hangDropCollectionBeforeLockAcquisition);
+ }
return writeConflictRetry(opCtx, "drop", collectionName.ns(), [&] {
// TODO(SERVER-39520): Get rid of database MODE_X lock.
auto autoDb = std::make_unique<AutoGetDb>(opCtx, collectionName.db(), MODE_IX);