[ https://issues.apache.org/jira/browse/HTTPCLIENT-2379?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17993121#comment-17993121 ]
yhzdys commented on HTTPCLIENT-2379: ------------------------------------ [~olegk] This is the scenario where I encountered the problem: When multiple HTTP requests (two or more) are executed concurrently, they may reuse the same poolEntry (connection). After this poolEntry (connection) is leased and then CLOSED by the server side, the release method of H2SharingConnPool is called. However, the release method checks if the connection is already closed — if so, it directly removes the entry and returns 0, without decreasing the counter of the poolEntry. As a result, the same poolEntry (connection) may be released multiple times by the underlying ManagedConnPool. https://github.com/apache/httpcomponents-client/blob/6e0a18f2c2a6f976773b911869340b97545c632c/httpclient5/src/main/java/org/apache/hc/client5/http/impl/nio/H2SharingConnPool.java#L293 > Multiple removal of same PoolEntry causes IllegalStateException in > H2SharingConnPool > ------------------------------------------------------------------------------------ > > Key: HTTPCLIENT-2379 > URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2379 > Project: HttpComponents HttpClient > Issue Type: Bug > Components: HttpClient (async) > Affects Versions: 5.5 > Reporter: yhzdys > Priority: Major > Fix For: 5.5.1, 5.6-alpha1 > > Time Spent: 2h 40m > Remaining Estimate: 0h > > After enabling messageMultiplexing, the H2SharingConnPool is used to reuse > PoolEntry. > When making more than one request using the same connection, if the > connection is closed, > the pool.release(entry, reusable) method at H2SharingConnPool.java:183 will > throw the following exception: > ~~~java > throw new IllegalStateException("Pool entry is not present in the set of > leased entries"); > ~~~ > This occurs because the same connection is being removed multiple times. > https://github.com/yhzdys/httpcomponents-client/commit/c8256b33c3adb45cfa2a49efb2dacfb611da9ac1 -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org