Skip to content

Commit b395273

Browse files
committed
fix retryWrite bug
1 parent 3c8c4d0 commit b395273

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed

lib/core/sdam/topology.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -930,7 +930,8 @@ function executeWriteOperation(args, options, callback) {
930930
!!options.retryWrites &&
931931
options.session &&
932932
isRetryableWritesSupported(topology) &&
933-
!options.session.inTransaction();
933+
!options.session.inTransaction() &&
934+
options.explain === undefined;
934935

935936
topology.selectServer(writableServerSelector(), options, (err, server) => {
936937
if (err) {

lib/core/topologies/mongos.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -919,7 +919,8 @@ function executeWriteOperation(args, options, callback) {
919919
!!options.retryWrites &&
920920
options.session &&
921921
isRetryableWritesSupported(self) &&
922-
!options.session.inTransaction();
922+
!options.session.inTransaction() &&
923+
options.explain === undefined;
923924

924925
const handler = (err, result) => {
925926
if (!err) return callback(null, result);

lib/core/topologies/replset.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1188,7 +1188,8 @@ function executeWriteOperation(args, options, callback) {
11881188
!!options.retryWrites &&
11891189
options.session &&
11901190
isRetryableWritesSupported(self) &&
1191-
!options.session.inTransaction();
1191+
!options.session.inTransaction() &&
1192+
options.explain === undefined;
11921193

11931194
if (!self.s.replicaSetState.hasPrimary()) {
11941195
if (self.s.disconnectHandler) {

0 commit comments

Comments
 (0)