Description
Bug description
Getting error with Springboot 3.4.1 while executing batch jobs
Error Message:
Command failed with error 251 (NoSuchTransaction): 'Transaction with { txnNumber: 24 } has been aborted.' on server pl-0-eu-west-1.3dhx9.mongodb.net:1041. The full response is {"errorLabels": ["TransientTransactionError"], "ok": 0.0, "errmsg": "Transaction with { txnNumber: 24 } has been aborted.", "code": 251, "codeName": "NoSuchTransaction", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1735790456, "i": 1}}, "signature": {"hash": {"$binary": {"base64": "sKYXYVX+BZTVEOMUocGi7Cm8t2A=", "subType": "00"}}, "keyId": 7434572047025438725}}, "operationTime": {"$timestamp": {"t": 1735790456, "i": 1}}}
Possible Cause: The error might be due to the transaction timeout or multiple write operations causing the transaction to abort.
Environment
- Spring Batch version: 5.2.0
- Java version: 21
- Database: Mongo Atlas
Steps to reproduce
- Execute the batch job.
- The job should sync all data.
- The job aborts in between, possibly due to multiple write operations.
Expected behavior
The batch job should execute and sync all data without aborting.
Minimal Complete Reproducible example
Fails at: mongoTemplate.findAndModify(query, update, SelectorModel.class, CollectionNames.SELECTORS);