Hello Oleg,

We are finding an issue in a new installation of our app that is using 
httpclient5-5.2.1 and httpcore5-5.2.

Our app is a proxy that receives protobuf requests that are sent to an amazon 
endpoint that is responding with protobuf responses. We started this 
communication by using plain http, processing around 4.000 req/s. Everything OK.

But when we move to live https must be used to communicate with this endpoint, 
just changing the url from http:// to https://

So we changed it and after 30 seconds testing we got an OutOfMemoryException, 
the heap was exhausted.

Below an histogram using http (just the first 2 items):
num     #instances         #bytes  class name
----------------------------------------------
   1:        181753       52412760  <methodKlass>
   2:        218819       46398592  [B


And the histogram using https after 30s:
num     #instances         #bytes  class name
----------------------------------------------
   1:        224873     3216328416  [B
   2:        182417       52604088  <methodKlass>


So the space occupied by byte arrays moves from 46Mb to 3GB. So we decided to 
perform a heap dump and analyze it to find out where these 3GB byte arrays are 
coming from, and we have seen this:

178 instances of 
"org.apache.hc.core5.http2.impl.nio.ClientH2StreamMultiplexer", loaded by 
"org.apache.catalina.loader.ParallelWebappClassLoader @ 0x400768258e8" occupy 
2.999.171.840 (88,20 %) bytes
http://www.grupoventus.com/resources/top_dominator_class.png


If we analyze each one of these 178 instances of ClientH2StreamMultiplexer, it 
seems the OutputBuffer is holding around 16Mb for each instance, multiplied by 
178 gives as a result these 3GB:
http://www.grupoventus.com/resources/output_buffer.png


I’m not sure if this is a bug, we have been using https with these same 
versions against other endpoints and we never had a problem. Anyways it does 
not seem a memory leak, because if you keep the traffic stable, the space 
occupied by these instances seems to not be growing.

Let me know what you think, and if you need more information (logs about http 
traffic, etc).

Thanks,

Joan.






---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
For additional commands, e-mail: httpclient-users-h...@hc.apache.org

Reply via email to