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 2013/11/07 09:51:25 UTC

[jira] [Commented] (QPID-5294) [AMQP 1.0 JMS] Thread deadlock due to JVM bug JDK-8022788

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

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

Commit 1539558 from [~godfrer] in branch 'qpid/trunk'
[ https://svn.apache.org/r1539558 ]

QPID-5294 : Thread deadlock due to simultaneous calls to write and close on SSLSocket (JVM bug JDK-8022788)

> [AMQP 1.0 JMS] Thread deadlock due to JVM bug JDK-8022788
> ---------------------------------------------------------
>
>                 Key: QPID-5294
>                 URL: https://issues.apache.org/jira/browse/QPID-5294
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.24
>         Environment: Qpid JMS AMQP 1.0 client lib
>            Reporter: David Ingham
>         Attachments: QPID-5294.patch
>
>
> A deadlock is occasionally observed in heavy load testing. This is apparently due to the following JVM bug:
> JDK-8022788 : deadlock in SSLSocketImpl between between write and close
> Affected Versions:          7u60
> Fixed Versions:               7u60
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8022788
> The bug manifests itself with the following deadlock:
> Found one Java-level deadlock:
> =============================
> "Thread-392":
>   waiting for ownable synchronizer 0x000000078af1c4a0, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
>   which is held by "Thread-391"
> "Thread-391":
>   waiting to lock monitor 0x00007f48d4483790 (object 0x000000078af1be60, a sun.security.ssl.SSLSocketImpl),
>   which is held by "Thread-392"
> Java stack information for the threads listed above:
> ===================================================
> "Thread-392":
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x000000078af1c4a0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:867)
>         at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1197)
>         at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:214)
>         at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290)
>         at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:799)
>         at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:672)
>         at sun.security.ssl.SSLSocketImpl.sendAlert(SSLSocketImpl.java:2007)
>         at sun.security.ssl.SSLSocketImpl.warning(SSLSocketImpl.java:1834)
>         at sun.security.ssl.SSLSocketImpl.closeInternal(SSLSocketImpl.java:1602)
>         - locked <0x000000078af1be60> (a sun.security.ssl.SSLSocketImpl)
>         at sun.security.ssl.SSLSocketImpl.close(SSLSocketImpl.java:1538)
>         at org.apache.qpid.amqp_1_0.client.Connection$2.run(Connection.java:267)
>         at java.lang.Thread.run(Thread.java:724)
> "Thread-391":
>         at sun.security.ssl.SSLSocketImpl.getConnectionState(SSLSocketImpl.java:649)
>         - waiting to lock <0x000000078af1be60> (a sun.security.ssl.SSLSocketImpl)
>         at sun.security.ssl.SSLSocketImpl.isClosed(SSLSocketImpl.java:1446)
>         at java.net.Socket.getTcpNoDelay(Socket.java:961)
>         at sun.security.ssl.BaseSSLSocketImpl.getTcpNoDelay(BaseSSLSocketImpl.java:345)
>         at sun.security.ssl.SSLSocketImpl.writeRecordInternal(SSLSocketImpl.java:819)
>         at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:801)
>         at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122)
>         - locked <0x000000078af1c570> (a sun.security.ssl.AppOutputStream)
>         at org.apache.qpid.amqp_1_0.framing.ConnectionHandler$BytesOutputHandler.processBytes(ConnectionHandler.java:420)
>         at org.apache.qpid.amqp_1_0.framing.ConnectionHandler$FrameToBytesSourceAdapter.getBytes(ConnectionHandler.java:305)
>         at org.apache.qpid.amqp_1_0.framing.ConnectionHandler$SequentialBytesSource.getBytes(ConnectionHandler.java:371)
>         - locked <0x000000078af1c5c8> (a org.apache.qpid.amqp_1_0.framing.ConnectionHandler$SequentialBytesSource)
>         at org.apache.qpid.amqp_1_0.framing.ConnectionHandler$BytesOutputHandler.run(ConnectionHandler.java:406)
>         at java.lang.Thread.run(Thread.java:724)



--
This message was sent by Atlassian JIRA
(v6.1#6144)

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