summaryrefslogtreecommitdiff
path: root/src/mongo/db
diff options
context:
space:
mode:
authorDavid Hows <howsdav@gmail.com>2017-01-17 17:00:25 +1100
committerDavid Hows <howsdav@gmail.com>2017-03-13 12:26:04 +1100
commitb890af7de045d1d91b01f90a453d81fc6631b29d (patch)
treebc6191b1479b37ad0335260b35805d2b0510b988 /src/mongo/db
parent39e06c9ef8c797ad626956b564ac9ebe295cbaf3 (diff)
downloadmongo-b890af7de045d1d91b01f90a453d81fc6631b29d.tar.gz
SERVER-27670 Improve error messages reported on EBUSY return from WiredTiger
Diffstat (limited to 'src/mongo/db')
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp6
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp5
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp6
3 files changed, 14 insertions, 3 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp
index 5e70584a86d..eb91754ab9f 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp
@@ -283,7 +283,11 @@ void WiredTigerIndex::fullValidate(OperationContext* opCtx,
if (fullResults && !WiredTigerRecoveryUnit::get(opCtx)->getSessionCache()->isEphemeral()) {
int err = WiredTigerUtil::verifyTable(opCtx, _uri, &(fullResults->errors));
if (err == EBUSY) {
- const char* msg = "verify() returned EBUSY. Not treating as invalid.";
+ std::string msg = str::stream()
+ << "Could not complete validation of " << _uri << ". "
+ << "This is a transient issue as the collection was actively "
+ "in use by other operations.";
+
warning() << msg;
fullResults->warnings.push_back(msg);
} else if (err) {
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp
index 060f4b58288..bd3c83f555f 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp
@@ -392,7 +392,10 @@ Status WiredTigerKVEngine::_salvageIfNeeded(const char* uri) {
// SERVER-16457: verify and salvage are occasionally failing with EBUSY. For now we
// lie and return OK to avoid breaking tests. This block should go away when that ticket
// is resolved.
- error() << "Verify on " << uri << " failed with EBUSY. Assuming no salvage is needed.";
+ error()
+ << "Verify on " << uri << " failed with EBUSY. "
+ << "This means the collection was being accessed. No repair is necessary unless other "
+ "errors are reported.";
return Status::OK();
}
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
index a88754cf992..b10b3cfdc92 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
@@ -1543,7 +1543,11 @@ Status WiredTigerRecordStore::validate(OperationContext* opCtx,
if (!_isEphemeral) {
int err = WiredTigerUtil::verifyTable(opCtx, _uri, &results->errors);
if (err == EBUSY) {
- const char* msg = "verify() returned EBUSY. Not treating as invalid.";
+ std::string msg = str::stream()
+ << "Could not complete validation of " << _uri << ". "
+ << "This is a transient issue as the collection was actively "
+ "in use by other operations.";
+
warning() << msg;
results->warnings.push_back(msg);
} else if (err) {