RFR: JDK-8288746: HttpClient resources could be reclaimed more eagerly

Daniel Fuchs dfuchs at openjdk.org
Tue Jun 21 17:39:31 UTC 2022


On Tue, 21 Jun 2022 17:31:59 GMT, Brent Christian <bchristi at openjdk.org> wrote:

>> Hi,
>> 
>> Please find here a patch that should help the HttpClient's SelectorManager thread to terminate more timely, allowing the resources consumed by the client to be released earlier.
>> 
>> The idea is to use a Cleaner registered with the HttpClientFacade to wakeup the Selector when the facade is being gc'ed.
>> Some tests have been modified to wait for the selector manager thread to shutdown, and some of them have been observed to timeout when the fix is not in place.
>
> test/jdk/java/net/httpclient/AsFileDownloadTest.java line 207:
> 
>> 205:                 System.gc();
>> 206:                 if (queue.remove(100) == ref) break;
>> 207:             }
> 
> You might consider using the ForceGC test utility, here and in DigestEchoClient.java. E.g.:
> 
>  * @library /test/lib/
> ...
> ForceGC gc = new ForceGC();
> gc.await(ref.refersTo(null));

Well - no - because ForceGC is using a different object and a different Cleaner thread. So it's much more efficient to wait on the reference queue (= the time to wait will be shorter, so risks of exceeding the global jtreg timeout will be lower).

-------------

PR: https://git.openjdk.org/jdk/pull/9217


More information about the net-dev mailing list