Alex Rudyy created QPID-8309: -------------------------------- Summary: [Broker-J] [AMQP 0-8..0-91] Concurrent transaction commit can fail with: Cannot commit transaction with state 'DISCHARGING' Key: QPID-8309 URL: https://issues.apache.org/jira/browse/QPID-8309 Project: Qpid Issue Type: Bug Components: Broker-J Affects Versions: qpid-java-broker-7.1.2, qpid-java-broker-7.1.1, qpid-java-broker-7.1.0 Reporter: Alex Rudyy Fix For: qpid-java-broker-7.1.3
Concurrent transaction commit can end-up in error: Cannot commit transaction with state 'DISCHARGING'. The stack trace like the one below is reported into Qpid broker logs: {noformat} 2019-05-06 03:32:05,960 WARN [IO-/127.0.0.1:5672] (o.a.q.s.p.v.AMQPConnection_0_8Impl) - Unexpected exception java.lang.IllegalStateException: Cannot commit transaction with state 'DISCHARGING' at org.apache.qpid.server.txn.LocalTransaction.commitAsync(LocalTransaction.java:427) at org.apache.qpid.server.protocol.v0_8.AMQChannel.commit(AMQChannel.java:1092) at org.apache.qpid.server.protocol.v0_8.AMQChannel.receiveTxCommit(AMQChannel.java:3385) at org.apache.qpid.server.protocol.v0_8.ServerDecoder.processMethod(ServerDecoder.java:230) at org.apache.qpid.server.protocol.v0_8.AMQDecoder.processFrame(AMQDecoder.java:203) at org.apache.qpid.server.protocol.v0_8.BrokerDecoder.doProcessFrame(BrokerDecoder.java:141) at org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processFrame(BrokerDecoder.java:65) at org.apache.qpid.server.protocol.v0_8.AMQDecoder.processInput(AMQDecoder.java:185) at org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:104) at org.apache.qpid.server.protocol.v0_8.BrokerDecoder$1.run(BrokerDecoder.java:97) at java.security.AccessController.doPrivileged(Native Method) at org.apache.qpid.server.protocol.v0_8.BrokerDecoder.processAMQPFrames(BrokerDecoder.java:96) at org.apache.qpid.server.protocol.v0_8.AMQDecoder.decode(AMQDecoder.java:118) {noformat} Transaction state checks added as part of QPID-7541 introduced a regression for asynchronous way of committing transactions used for AMQP 0-8..0-91. The asynchronous transaction needs to be synced before state check is performed. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org