You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2019/05/07 12:42:00 UTC

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

    [ https://issues.apache.org/jira/browse/QPID-8309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16834721#comment-16834721 ] 

ASF subversion and git services commented on QPID-8309:
-------------------------------------------------------

Commit 2a85e19a0730cf66ffc88f97b3a028c196fb582d in qpid-broker-j's branch refs/heads/master from Alex Rudyy
[ https://gitbox.apache.org/repos/asf?p=qpid-broker-j.git;h=2a85e19 ]

QPID-8309: [Broker-J] Fix local transaction discharge when async underlying store transaction is in progress


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