[ 
https://issues.apache.org/jira/browse/QPID-8309?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Rudyy updated QPID-8309:
-----------------------------
    Description: 
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 the state check is performed.


  was:
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.



> [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.0, qpid-java-broker-7.1.1, 
> qpid-java-broker-7.1.2
>            Reporter: Alex Rudyy
>            Priority: Critical
>             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 the 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

Reply via email to