RFR : JDK-8154166 - java/lang/management/MemoryMXBean/ResetPeakMemoryUsage.java fails with RuntimeException

Jaroslav Bachorik j.bachorik at gmail.com
Sun Apr 24 09:47:19 UTC 2016


The reproducer would be very time sensitive as with the provided
'ExplicitGCInvokesConcurrent' it will run GC concurrently with the invoker.
Otherwise, in the current implementation, calling Runtime.gc() would
guarantee the GC cycle has finished before that method returns.

The WeakReference javadoc (
https://docs.oracle.com/javase/7/docs/api/java/lang/ref/WeakReference.html)
is only stating that the referenced object will be made finalizable at the
same time as the reference is cleared. As a consequence a cleared reference
might not always mean that the heap usage has been changed (unless a
particular GC implementation makes some additional guarantees).

I know we were stabilizing a bunch of related tests relying on GC doing its
work before checking for some post-conditions and the only way to make the
tests reliable was to forbid running those tests with
'-XX:+ExplicitGCInvokesConcurrent'.

-JB-

On Sat, Apr 23, 2016 at 12:15 PM, Harsha Wardhana B <
harsha.wardhana.b at oracle.com> wrote:

> Hello,
>
> The issue was not reproducible with or without,
>
> "-XX:+ExplicitGCInvokesConcurrent"
>
> Flag. The patch ensures that GC happens before we start measuring memory.
> Without the patch, GC might or might not happen.
>
> -Harsha
>
>
> On Friday 22 April 2016 07:58 PM, Jaroslav Bachorik wrote:
>
> Hi,
>
> On Fri, Apr 22, 2016 at 9:10 AM, Harsha Wardhana B <
> <harsha.wardhana.b at oracle.com>harsha.wardhana.b at oracle.com> wrote:
>
>> Hi,
>>
>> Please review the below simple fix for issue,
>>
>> issue : https://bugs.openjdk.java.net/browse/JDK-8154166
>> webrev : http://cr.openjdk.java.net/~hb/8154166/webrev.00/
>>
>
> Shouldn't this test rather declare the conditions when it is supposed to
> work? According to the issue this was caused by introducing the "-XX:+ExplicitGCInvokesConcurrent"
> which makes it very tricky to make any assumptions about the GC process.
>
> See eg. jdk/tests/java/lang/management/MemoryMXBean/LowMemoryTest.java for
> enabling the test only for allowed configurations.
>
> Cheers,
>
> -JB-
>
>
>>
>>
>> -Harsha
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20160424/eeb06822/attachment-0001.html>


More information about the serviceability-dev mailing list