diff options
author | Benety Goh <benety@mongodb.com> | 2021-10-26 16:17:10 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-10-26 17:38:27 +0000 |
commit | 1cf0b1f960473c325f41a004a787560e71cd84b1 (patch) | |
tree | 389a639fb2bcdcabea66d4e1f12153561c32e212 /src/mongo/db/concurrency | |
parent | 4bc5be3bad41c21ee729dd700c64b22c1bdb1c12 (diff) | |
download | mongo-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.cpp | 8 | ||||
-rw-r--r-- | src/mongo/db/concurrency/write_conflict_exception.h | 1 |
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 |