kafka
runtime_error
ai_generated
true
org.apache.kafka.common.errors.TransactionTimeoutException: The transaction has timed out and has been aborted.
ID: kafka/transaction-aborted-due-to-timeout
82%Fix Rate
88%Confidence
1Evidence
2023-06-20First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| Kafka 2.5.0 | active | — | — | — |
| Kafka 3.1.0 | active | — | — | — |
| Kafka 3.5.0 | active | — | — | — |
Root Cause
A Kafka transactional producer exceeded `transaction.timeout.ms` before committing, causing the coordinator to abort the transaction.
generic中文
Kafka 事务性生产者在提交前超过了 `transaction.timeout.ms` 的限制,导致协调器中止了该事务。
Official Documentation
https://kafka.apache.org/documentation/#transaction_configWorkarounds
-
85% success Increase `transaction.timeout.ms` in the producer config (e.g., `transaction.timeout.ms=120000`) to accommodate longer-running transactions, and ensure the commit logic completes within this window.
Increase `transaction.timeout.ms` in the producer config (e.g., `transaction.timeout.ms=120000`) to accommodate longer-running transactions, and ensure the commit logic completes within this window.
-
75% success Optimize the transaction logic—e.g., reduce the number of partitions or messages per transaction, or use asynchronous commits where possible.
Optimize the transaction logic—e.g., reduce the number of partitions or messages per transaction, or use asynchronous commits where possible.
中文步骤
Increase `transaction.timeout.ms` in the producer config (e.g., `transaction.timeout.ms=120000`) to accommodate longer-running transactions, and ensure the commit logic completes within this window.
Optimize the transaction logic—e.g., reduce the number of partitions or messages per transaction, or use asynchronous commits where possible.
Dead Ends
Common approaches that don't work:
-
Setting `transaction.timeout.ms` to an extremely low value to speed up transactions
80% fail
A very low timeout increases the risk of aborts under normal load, making the system unstable.
-
Disabling idempotence to bypass transaction timeout checks
95% fail
Transactions require idempotence; disabling it will cause configuration errors and break transactional guarantees.