-
Type:
Investigation
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: Shell API
-
None
-
None
- Connect to replset
- Run test script below
- Hit Ctrl+C
Intermittently, mongosh will abort with
MongoRuntimeError: Attempted illegal state transition from [TRANSACTION_COMMITTED] to [TRANSACTION_ABORTED]
at Transaction.transition (/usr/bin/mongosh:52355:11)
at commandHandler (/usr/bin/mongosh:52955:27)
at /usr/bin/mongosh:53024:5
at /usr/bin/mongosh:46751:9
at /usr/bin/mongosh:48318:9
at /usr/bin/mongosh:72737:13
at /usr/bin/mongosh:73686:9
at handleOperationResult (/usr/bin/mongosh:73903:12)
at Connection.onMessage (/usr/bin/mongosh:70525:11)
at MessageStream.<anonymous> (/usr/bin/mongosh:70349:56) {
[Symbol(errorLabels)]: Set(0) {}
}
Test script:
while (true) { db.test.deleteMany({}); S = db.getMongo().startSession(); S.startTransaction(); D=S.getDatabase('test'); D.test.insertOne({x:1}); D.test.insertOne({x:2}); S.commitTransaction(); S.endSession(); count = db.test.countDocuments(); print(count); if (count != 2) { break; } }
(The exact script probably does not matter, but this is what I reproduced this with right now)