Andrea Grassi created HTTPCORE-580:
--------------------------------------

             Summary: Java-level deadlock
                 Key: HTTPCORE-580
                 URL: https://issues.apache.org/jira/browse/HTTPCORE-580
             Project: HttpComponents HttpCore
          Issue Type: Bug
          Components: HttpCore NIO
    Affects Versions: 4.4.7
         Environment: Wildfly 12 + jdk 1.8.144
            Reporter: Andrea Grassi


Hi,

we found the following deadlock : 

Found one Java-level deadlock:
=============================
"I/O dispatcher 7627":
  waiting to lock monitor 0x000000000bbb7428 (object 0x00000000bdf9d240, a 
java.lang.Object),
  which is held by "default task-897"
"default task-897":
  waiting to lock monitor 0x0000000004b38638 (object 0x00000000bdf9d158, a 
sun.nio.ch.SelectionKeyImpl),
  which is held by "I/O dispatcher 7627"

Java stack information for the threads listed above:
===================================================
"I/O dispatcher 7627":
    at 
java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:111)
    - waiting to lock <0x00000000bdf9d240> (a java.lang.Object)
    at 
org.apache.http.impl.nio.reactor.IOSessionImpl.close(IOSessionImpl.java:226)
    - locked <0x00000000bdf9d158> (a sun.nio.ch.SelectionKeyImpl)
    at 
org.apache.http.impl.nio.reactor.IOSessionImpl.shutdown(IOSessionImpl.java:254)
    at 
org.apache.http.impl.nio.reactor.AbstractIODispatch.connected(AbstractIODispatch.java:91)
    at 
org.apache.http.impl.nio.reactor.BaseIOReactor.sessionCreated(BaseIOReactor.java:250)
    at 
org.apache.http.impl.nio.reactor.AbstractIOReactor.processNewChannels(AbstractIOReactor.java:429)
    at 
org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:289)
    at 
org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:106)
    at 
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:590)
    at java.lang.Thread.run(Thread.java:748)
"default task-897":
    at 
java.nio.channels.spi.AbstractSelectionKey.cancel(AbstractSelectionKey.java:70)
    - waiting to lock <0x00000000bdf9d158> (a sun.nio.ch.SelectionKeyImpl)
    at 
java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:240)
    - locked <0x00000000bdf9d280> (a java.lang.Object)
    at 
java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115)
    - locked <0x00000000bdf9d240> (a java.lang.Object)
    at 
org.apache.http.impl.nio.reactor.SessionRequestImpl.cancel(SessionRequestImpl.java:215)
    at 
org.apache.http.nio.pool.AbstractNIOConnPool.shutdown(AbstractNIOConnPool.java:214)
    at 
org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.shutdown(PoolingNHttpClientConnectionManager.java:206)
    at 
org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.close(CloseableHttpAsyncClientBase.java:99)


_______________

we think the issue is due to SessionRequestImpl.java at 215 calling a 
channel.close() not synchronized while AbstractInterruptibleChannel.java:111 is 
synchronized






--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to