Mushthaq Rumy created HTTPCORE-687:
--------------------------------------
Summary: High CPU usage noticed for requests with newline
characters
Key: HTTPCORE-687
URL: https://issues.apache.org/jira/browse/HTTPCORE-687
Project: HttpComponents HttpCore
Issue Type: Bug
Components: HttpCore, HttpCore NIO
Affects Versions: 4.4.14
Environment: Oracle JDK 1.8.0_211
Oracle JDK 11.0.9
Reporter: Mushthaq Rumy
Attachments: CPUHigh-ScreenRecording.mov, FixCPUSpike.png,
HttpNIOTestServer.zip, testclient 2.zip
We are using the 4.4.14 of HttpCore NIO. We are having an issue while sending a
request to the server with additional newline characters where the CPU usage
seems to increase and stays on forever. We debugged and found out that after
the HTTPS response is written back to the client, the server tries to close the
connection and the SSLIOSession. Furthermore, we found out that the condition
[1] which gets executed in order to make the state as closed becomes false
forever and hence it keeps on trying to close and results in the CPU spike.
After further debugging we found out that the after a certain point the
*position* is always less than the *limit* and the state is set to *COMPLETED*
in** parse method in AbstractMessageParser.java [2], even though there are more
lines to be read.
In order to resolve this we did a small fix as shown in *FixCPUSpike.png*
We have attached a sample client and a server in order to reproduce the issue.
Appreciate your help on this.
[1] -
[https://github.com/apache/httpcomponents-core/blob/rel/v4.4.14/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java#L389]
[2] -
[https://github.com/apache/httpcomponents-core/blob/rel/v4.4.14/httpcore-nio/src/main/java/org/apache/http/impl/nio/codecs/AbstractMessageParser.java#L186-L241]
Thanks,
Mushthaq
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]