summaryrefslogtreecommitdiff
path: root/src/mongo/db/write_concern.cpp
diff options
context:
space:
mode:
authorMarcos José Grillo Ramírez <marcos.grillo@mongodb.com>2020-03-23 17:51:55 +0100
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-03-24 14:10:26 +0000
commitad5a5fd53f50a0290338ea701489f3c18f1fa308 (patch)
tree60dd42b203772d8941e9bb6a9360e5e23ef6d201 /src/mongo/db/write_concern.cpp
parente6e75a8bb7c95cca2a5f7ed028d497efbfe51078 (diff)
downloadmongo-ad5a5fd53f50a0290338ea701489f3c18f1fa308.tar.gz
SERVER-47043 Read concern set to default when it should be local
Diffstat (limited to 'src/mongo/db/write_concern.cpp')
-rw-r--r--src/mongo/db/write_concern.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mongo/db/write_concern.cpp b/src/mongo/db/write_concern.cpp
index d5749ac7e5c..05570734e5e 100644
--- a/src/mongo/db/write_concern.cpp
+++ b/src/mongo/db/write_concern.cpp
@@ -81,7 +81,8 @@ bool commandSpecifiesWriteConcern(const BSONObj& cmdObj) {
}
StatusWith<WriteConcernOptions> extractWriteConcern(OperationContext* opCtx,
- const BSONObj& cmdObj) {
+ const BSONObj& cmdObj,
+ bool isInternalClient) {
// The default write concern if empty is {w:1}. Specifying {w:0} is/was allowed, but is
// interpreted identically to {w:1}.
auto wcResult = WriteConcernOptions::extractWCFromCommand(cmdObj);
@@ -107,7 +108,7 @@ StatusWith<WriteConcernOptions> extractWriteConcern(OperationContext* opCtx,
repl::ReplicationCoordinator::get(opCtx)->isReplEnabled() &&
(!opCtx->inMultiDocumentTransaction() ||
isTransactionCommand(cmdObj.firstElementFieldName())) &&
- !opCtx->getClient()->isInDirectClient()) {
+ !opCtx->getClient()->isInDirectClient() && !isInternalClient) {
auto wcDefault = ReadWriteConcernDefaults::get(opCtx->getServiceContext())
.getDefaultWriteConcern(opCtx);