Details
-
Bug
-
Resolution: Not a Bug
-
Major
-
None
-
2.0.13.Final
-
None
Description
I was evaluating to upgrade our microservice to openjdk 11 and to utilize JDK httpclient 2.0 with undertow server,
and discovered concurrency issue can cause httpclient to result in infinite loop state,
after investigation, I am able to reproduce it locally with simple setup, as following,
the symptom is after sending multiple http/2.0 requests in small amount of time, it seems the undertow server won't clearly close each http2 channel, and httpclient thinks there was more data to process and keep reading and try to process, (looks like keep trying to handshake/need_wrap)
and this result in infinite loop on the client side
some findings
1) if I use openjdk 8 or 10 to run same example server code, run ClientTest with openjdk 11, there is no issues
2) if I send request one by one, there won't be any issues,
3) undertow HTTP/1.1 works under openjdk 11 for both HTTP or HTTPS,
4) if I use JDK 11 HTTPClient to test other http/2.0 site (e.g. by GoogleCloud LB), there is no issue
please advise any future step I should take or provide more details.