diff options
-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 |