RFR: JDK-8260282: Add option to compress heap dumps created by -XX:+HeapDumpOnOutOfMemoryError [v3]

Thomas Stuefe stuefe at openjdk.java.net
Thu Jan 28 08:34:47 UTC 2021


On Tue, 26 Jan 2021 08:01:02 GMT, Ralf Schmelter <rschmelter at openjdk.org> wrote:

>> This change adds the optiont to created a gzipped heap dump by -XX:+HeapDumpOnOutOfMemoryError.
>> 
>> -XX:HeapDumpGzipLevel=<level> sets the compression level. 0 (the default) means no gzipping of the dump. Otherwise the level has to be between 1 and 10.
>
> Ralf Schmelter has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision:
> 
>  - Merge branch 'master' of https://github.com/openjdk/jdk into JDK-8260282
>  - Limit memory of heap dumping VM
>  - Merge branch 'master' of https://github.com/openjdk/jdk into JDK-8260282
>  - Fixed maximum supported compression level.
>  - Fixed trailing whitespace.
>  - Merge branch 'master' of https://github.com/openjdk/jdk into JDK-8260282
>  - Change allowed levels. 0 now means disabled.#
>  - Added option to compress the heap dump created by -XX:+HeapDumpOnOutOfMemoryError

Looks good. Nitpickings below, but I leave it up to you which ones you follow up to. Otherwise fine.

..Thomas

test/hotspot/jtreg/runtime/ErrorHandling/TestGZippedHeapDumpOnOutOfMemoryError.java line 28:

> 26:  * @summary Test verifies that -XX:HeapDumpGzipLevel=0 works
> 27:  * @library /test/lib
> 28:  * @run driver/timeout=240 TestGZippedHeapDumpOnOutOfMemoryError run 0

Is the timeout needed? Should the oome not be pretty much instantaneous?

test/hotspot/jtreg/runtime/ErrorHandling/TestGZippedHeapDumpOnOutOfMemoryError.java line 36:

> 34:  * @library /test/lib
> 35:  * @run driver/timeout=240 TestGZippedHeapDumpOnOutOfMemoryError run 1
> 36:  */

If the tests are fast enough, I would add at least another one at the end of the valid gzip range.

test/hotspot/jtreg/runtime/ErrorHandling/TestGZippedHeapDumpOnOutOfMemoryError.java line 74:

> 72:         OutputAnalyzer output = new OutputAnalyzer(proc);
> 73:         output.stdoutShouldNotBeEmpty();
> 74:         output.shouldContain("Dumping heap to " + heapdumpFilename);

Could this be a full path? In case printing on the VM side is ever changed to print the full path, I'd make this more lenient. Maybe two separate contains expressions or a `shouldMatch` with ".*" int he middle.

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

Marked as reviewed by stuefe (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/2222


More information about the hotspot-runtime-dev mailing list