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