You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Alex Rudyy (JIRA)" <ji...@apache.org> on 2019/05/07 08:36:00 UTC

[jira] [Created] (QPID-8309) [Broker-J] [AMQP 0-8..0-91] Concurrent transaction commit can fail with: Cannot commit transaction with state 'DISCHARGING'

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-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org