Details
-
Bug
-
Resolution: Unresolved
-
Major - P3
-
None
-
None
-
None
-
Cluster Scalability
-
ALL
Description
session.startTransaction({writeConcern: {w: 'majority', wtimeout: 5000}}); |
sessionColl.insert({_id: 1}); |
session.commitTransaction({writeConcern: {w: 'majority', wtimeout: 3000}}); |
When running this through mongo shell on mongos, I don't see wtimeout showing up when I turn on high COMMAND verbosity on mongod on prepareTransaction and commitTransaction.
So if we kill two nodes in a 3 node shard, then we will observe that the prepareTransaction / commitTransaction blocks indefinitely, since that is the default value of wtimeout.
This is not the case if I run the above statements on a replica set (although the value of wtimeout used when committing is from startTransaction).
Wtimeout is honored when running individual operations on a sharded cluster. For example, I see that a single insert operation with a w and wtimeout value has the writeConcern values respected.