summaryrefslogtreecommitdiff
path: root/src/mongo/db/concurrency
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2021-10-26 16:17:10 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-10-26 17:38:27 +0000
commit1cf0b1f960473c325f41a004a787560e71cd84b1 (patch)
tree389a639fb2bcdcabea66d4e1f12153561c32e212 /src/mongo/db/concurrency
parent4bc5be3bad41c21ee729dd700c64b22c1bdb1c12 (diff)
downloadmongo-1cf0b1f960473c325f41a004a787560e71cd84b1.tar.gz
SERVER-60976 WriteConflictException accepts context at creation
Diffstat (limited to 'src/mongo/db/concurrency')
-rw-r--r--src/mongo/db/concurrency/write_conflict_exception.cpp8
-rw-r--r--src/mongo/db/concurrency/write_conflict_exception.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/mongo/db/concurrency/write_conflict_exception.cpp b/src/mongo/db/concurrency/write_conflict_exception.cpp
index 9e4771473c6..ea8ce3c75c9 100644
--- a/src/mongo/db/concurrency/write_conflict_exception.cpp
+++ b/src/mongo/db/concurrency/write_conflict_exception.cpp
@@ -48,6 +48,14 @@ WriteConflictException::WriteConflictException()
}
}
+WriteConflictException::WriteConflictException(StringData context) : WriteConflictException() {
+ // Avoid unnecessary update to embedded Status within DBException.
+ if (context.empty()) {
+ return;
+ }
+ addContext(context);
+}
+
void WriteConflictException::logAndBackoff(int attempt, StringData operation, StringData ns) {
mongo::logAndBackoff(4640401,
::mongo::logv2::LogComponent::kWrite,
diff --git a/src/mongo/db/concurrency/write_conflict_exception.h b/src/mongo/db/concurrency/write_conflict_exception.h
index a82d8f3296d..983411169e3 100644
--- a/src/mongo/db/concurrency/write_conflict_exception.h
+++ b/src/mongo/db/concurrency/write_conflict_exception.h
@@ -48,6 +48,7 @@ extern FailPoint skipWriteConflictRetries;
class WriteConflictException final : public DBException {
public:
WriteConflictException();
+ WriteConflictException(StringData context);
/**
* Will log a message if sensible and will do an exponential backoff to make sure