RFR: 8332490: JMH org.openjdk.bench.java.util.zip.InflaterInputStreams.inflaterInputStreamRead OOM
Alan Bateman
alanb at openjdk.org
Wed May 22 07:23:02 UTC 2024
On Wed, 22 May 2024 05:16:42 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:
> Can I please get a review of this test-only change for addressing https://bugs.openjdk.org/browse/JDK-8332490?
>
> The jmh test opens a `InflaterInputStream`, reads the stream contents, but then doesn't close the stream. This can lead to resource leak which can then cause OOM as noted in that JBS issue.
>
> The commit in this PR closes the `InflaterInputStream` when the reads complete.
>
>
> make test TEST=micro:org.openjdk.bench.java.util.zip.InflaterInputStreams
>
> and
>
>
> ./build/macosx-aarch64/images/jdk/bin/java -jar ./build/macosx-aarch64/images/test/micro/benchmarks.jar org.openjdk.bench.java.util.zip.InflaterInputStreams.inflaterInputStreamRead -t max -f 1 -wi 2 -foe true
>
> pass after this change.
test/micro/org/openjdk/bench/java/util/zip/InflaterInputStreams.java line 113:
> 111: try (InflaterInputStream iis = new InflaterInputStream(deflated)) {
> 112: while (iis.read(inflated, 0, inflated.length) != -1);
> 113: }
Presumably this only works because closing the underlying stream (a BAOS in this case) is a no-op.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19340#discussion_r1609427551
More information about the core-libs-dev
mailing list