Egbert created HTTPASYNC-154:
--------------------------------
Summary: Deadlock (?) when using HttpAsyncClient in Java 11
Key: HTTPASYNC-154
URL: https://issues.apache.org/jira/browse/HTTPASYNC-154
Project: HttpComponents HttpAsyncClient
Issue Type: Bug
Affects Versions: 4.1.4
Environment: Ubuntu 19.04 amd64
openjdk-8-jdk ~8u222-b10-1ubuntu1~19.04.1
openjdk-11-jdk ~11.0.4+11-1ubuntu2~19.04
Reporter: Egbert
I'm working on with a Java Webcrawler based on HttpAsyncClient, and I've
encountered a situation where a deadlock occurs in Java 11, where it does not
in Java 8. The software is based on a fork of crawler4j, jcrawler ([
https://bintray.com/pointpro/jcrawler/JCrawler#files/nl%2Fpointpro%2Fjcrawler%2F2.0.0-snapshot-201910090600|https://bintray.com/pointpro/jcrawler/JCrawler#files/nl%2Fpointpro%2Fjcrawler%2F2.0.0-snapshot-201910090600]
to be exact)
The lock occurs in `org.apache.http.nio.pool.AbstractNIOConnPool#lease(T,
java.lang.Object, long, long, java.util.concurrent.TimeUnit,
org.apache.http.concurrent.FutureCallback<E>)` on line 278 where the
`ReentrantLock` `lock` is locked.
A set of several dozen pages is fetched successfully, but after the 20th
request, it just hangs there. A created a thread dump that shows the thread is
waiting to lock, but the thread dump doesn't show any other thread locking this
lock. It never acquires the lock - it just waits there indefinitely. I left it
running for an hour or so before killing it. The lock AbstractNIOConnPool is
waiting for never becomes available but no other thread seems to have locked it.
I'm not sure where to begin gathering more information on this issue. The two
versions I've tried are:
openjdk-8-jdk ~8u222-b10-1ubuntu1~19.04.1
and
openjdk-11-jdk ~11.0.4+11-1ubuntu2~19.04
I'm willing to collect additional information but I can see so many directions
in where I can debug that I don't know where to start.
I've switched back to Java 8 for now.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]