I've been debugging a load test regression, which turned out to be
caused by a client instance leak. The test started failing on 5.4.4
due to running out of file descriptors. What I realized is that leaked
connection pools are eventually cleaned up by garbage collection,
which causes the sockets' file descriptors to be released. What has
changed in 5.4.4 is that this process now takes TWO rounds of garbage
collection. This can be seen in the `lsof` output, which shows where
in the TCP state machine the socket is:

5.2: ESTABLISHED -(gc)-> (gone)
5.4: ESTABLISHED -(gc)-> CLOSE_WAIT -(gc)-> (gone)

Does anyone know what might have changed that would cause this? I'm
specifically asking about the synchronous client (I haven't tested the
async client).

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

Reply via email to