Skip to content

Commit f976582

Browse files
committed
fix retryWrite bug
1 parent 8ef85ba commit f976582

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
@@ -1193,7 +1193,8 @@ function executeWriteOperation(args, options, callback) {
11931193
!!options.retryWrites &&
11941194
options.session &&
11951195
isRetryableWritesSupported(self) &&
1196-
!options.session.inTransaction();
1196+
!options.session.inTransaction() &&
1197+
options.explain === undefined;
11971198

11981199
if (!self.s.replicaSetState.hasPrimary()) {
11991200
if (self.s.disconnectHandler) {

0 commit comments

Comments
 (0)