You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Robbie Gemmell (Jira)" <ji...@apache.org> on 2020/08/10 07:53:00 UTC

[jira] [Commented] (QPID-6447) [AMQP 1.0 JMS Client ] deadlock during transaction commit

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

Robbie Gemmell commented on QPID-6447:
--------------------------------------

Note that although a change was made it was done after 0.32.0 was released, and the legacy client was then removed after that point before the new releases (as the newer/current client had already been released). As such this change was never released, hence the lack of fix-version.

> [AMQP 1.0 JMS Client ] deadlock during transaction commit
> ---------------------------------------------------------
>
>                 Key: QPID-6447
>                 URL: https://issues.apache.org/jira/browse/QPID-6447
>             Project: Qpid
>          Issue Type: Bug
>    Affects Versions: 0.32
>            Reporter: Robbie Gemmell
>            Priority: Major
>              Labels: legacy-jms-amqp-1.0-client
>
> Tim noticed a deadlock when running the ActiveMQ AMQP tests locally utilising the 0.32-SNAPSHOT client. The client appears to get stuck when performing a commit.
> The same can be observed looking through results for the ActiveMQ CI jobs on Jenkins since it was updated to using the  0.32-SNAPSHOT client.
> {noformat}
> Found one Java-level deadlock:
> =============================
> "QpidConnectionInputThread-0":
>   waiting to lock monitor 0x00007f0fb8079238 (object 0x00000000fa1667a0, a org.apache.qpid.amqp_1_0.client.TransactionController),
>   which is held by "main"
> "main":
>   waiting to lock monitor 0x00007f0fd408a738 (object 0x00000000f9c9d3e8, a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint),
>   which is held by "QpidConnectionInputThread-0"
> Java stack information for the threads listed above:
> ===================================================
> "QpidConnectionInputThread-0":
>         at org.apache.qpid.amqp_1_0.client.TransactionController.handle(TransactionController.java:205)
>         - waiting to lock <0x00000000fa1667a0> (a org.apache.qpid.amqp_1_0.client.TransactionController)
>         at org.apache.qpid.amqp_1_0.transport.LinkEndpoint.receiveDeliveryState(LinkEndpoint.java:229)
>         - locked <0x00000000f9c9d3e8> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
>         at org.apache.qpid.amqp_1_0.transport.SendingLinkEndpoint.receiveDeliveryState(SendingLinkEndpoint.java:196)
>         at org.apache.qpid.amqp_1_0.transport.SessionEndpoint.receiveDisposition(SessionEndpoint.java:527)
>         at org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receiveDisposition(ConnectionEndpoint.java:664)
>         - locked <0x00000000f9c9d3e8> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
>         at org.apache.qpid.amqp_1_0.type.transport.Disposition.invoke(Disposition.java:180)
>         at org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint.receive(ConnectionEndpoint.java:808)
>         - locked <0x00000000f9c9d3e8> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
>         at org.apache.qpid.amqp_1_0.framing.FrameHandler.parse(FrameHandler.java:241)
>         at org.apache.qpid.amqp_1_0.framing.ConnectionHandler.parse(ConnectionHandler.java:75)
>         at org.apache.qpid.amqp_1_0.client.TCPTransportProvider.doRead(TCPTransportProvider.java:244)
>         at org.apache.qpid.amqp_1_0.client.TCPTransportProvider.access$000(TCPTransportProvider.java:47)
>         at org.apache.qpid.amqp_1_0.client.TCPTransportProvider$1.run(TCPTransportProvider.java:185)
>         at java.lang.Thread.run(Thread.java:745)
> "main":
>         at org.apache.qpid.amqp_1_0.transport.LinkEndpoint.isDetached(LinkEndpoint.java:326)
>         - waiting to lock <0x00000000f9c9d3e8> (a org.apache.qpid.amqp_1_0.transport.ConnectionEndpoint)
>         at org.apache.qpid.amqp_1_0.client.TransactionController.waitForResponse(TransactionController.java:118)
>         - locked <0x00000000fa1667a0> (a org.apache.qpid.amqp_1_0.client.TransactionController)
>         at org.apache.qpid.amqp_1_0.client.TransactionController.discharge(TransactionController.java:196)
>         at org.apache.qpid.amqp_1_0.client.TransactionController.commit(TransactionController.java:148)
>         at org.apache.qpid.amqp_1_0.client.Transaction.commit(Transaction.java:37)
>         at org.apache.qpid.amqp_1_0.jms.impl.SessionImpl.commit(SessionImpl.java:244)
>         at org.objectweb.jtests.jms.conform.session.SessionTest.testCommitTransactedSession(SessionTest.java:125)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         at junit.framework.TestCase.runTest(TestCase.java:176)
>         at junit.framework.TestCase.runBare(TestCase.java:141)
>         at junit.framework.TestResult$1.protect(TestResult.java:122)
>         at junit.framework.TestResult.runProtected(TestResult.java:142)
>         at junit.framework.TestResult.run(TestResult.java:125)
>         at junit.framework.TestCase.run(TestCase.java:129)
>         at junit.framework.TestSuite.runTest(TestSuite.java:255)
>         at junit.framework.TestSuite.run(TestSuite.java:250)
>         at junit.framework.TestSuite.runTest(TestSuite.java:255)
>         at junit.framework.TestSuite.run(TestSuite.java:250)
>         at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)
>         at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
>         at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
>         at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
>         at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
>         at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
>         at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
> Found 1 deadlock.
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org