-
Type:
Bug
-
Resolution: Gone away
-
Priority:
Critical - P2
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Not Needed
-
None
-
None
-
None
-
None
-
None
-
None
MongoDB v4.4
Node.js driver: 3.6.6
As i know, find query don't compete race condition. but i don't know why?
// 코드 자리 표시자 const session = Connection.client.startSession(); try { session.startTransaction(); const result = await Promise.all([ Connection.db.collection("movies").findOne( { genres: { $in: ["Drama"] }, }, { session } ), Connection.db.collection("movies").findOne( { genres: { $in: ["Fantasy"] }, }, { session } ), Connection.db.collection("movies").findOne( { genres: { $in: ["Crime"] }, }, { session } ), ]); await session.commitTransaction(); res.status(200).send(result); } catch (error) { console.log(error); await session.abortTransaction(); // console.log(abort); res.status(500).send(error.message); } finally { session.endSession(); }
MongoError: Given transaction number 3 does not match any in-progress transactions. The active transaction number is 2
at Connection.<anonymous> (/Users/ian/Workspace/my/mongodb-transaction-test/node_modules/mongodb/lib/core/connection/pool.js:451:61)
at Connection.emit (events.js:315:20)
at Connection.EventEmitter.emit (domain.js:467:12)
at processMessage (/Users/ian/Workspace/my/mongodb-transaction-test/node_modules/mongodb/lib/core/connection/connection.js:451:10)
at TLSSocket.<anonymous> (/Users/ian/Workspace/my/mongodb-transaction-test/node_modules/mongodb/lib/core/connection/connection.js:620:15)
at TLSSocket.emit (events.js:315:20)
at TLSSocket.EventEmitter.emit (domain.js:467:12)
at addChunk (internal/streams/readable.js:309:12)
at readableAddChunk (internal/streams/readable.js:284:9)
at TLSSocket.Readable.push (internal/streams/readable.js:223:10)
,
ok: 0,
code: 251,
codeName: 'NoSuchTransaction',
'$clusterTime':
,
signature: { hash: [Binary], keyId: [Long] }
},
[Symbol(errorLabels)]: Set(1) { 'TransientTransactionError' }
}