[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-serviceability-dev
Subject: Re: [14] RFR(s) : 8234173: assert(loader != __null && oopDesc::is_oop(loader)) failed: loader must b
From: sangheon.kim () oracle ! com
Date: 2020-01-15 20:01:39
Message-ID: f9ddef83-5643-32df-79de-2820968c658a () oracle ! com
[Download RAW message or body]
Sorry, I sent to wrong alias.
Resent to runtime.
Thanks,
Sangheon
On 1/15/20 11:57 AM, sangheon.kim@oracle.com wrote:
> Hi all,
>
> Could I have some reviews for changing mark value of
> ObjectSampleMarker (part of JFR Leak Profiler)?
>
> The assertion is fired because the leak
> profiler(ObjectSampleMarker::mark()) puts an invalid mark word (0,
> INFLATING) into the oop and a concurrent user of oopDesc::is_oop() is
> reading the mark word which may diagnose the given object is not oop.
>
> In addition, there is a comment at oopDesc::is_oop() which supports
> that mark word shouldn't be zero at safepoint.
>
> // Header verification: the mark is typically non-zero. If we're
> // at a safepoint, it must not be zero.
> // Outside of a safepoint, the header could be changing (for example,
> // another thread could be inflating a lock on this object).
>
> Nobody writes to the mark word concurrently.
> Other GCs which support JFR have the same issue, but at the moment the
> test is only run with G1.
>
> In the patch, I am proposing to set mark word with 3 (mark bit value)
> instead of 0.
>
> CR: https://bugs.openjdk.java.net/browse/JDK-8234173
> webrev: http://cr.openjdk.java.net/~sangheki/8234173/webrev.0/
> Testing: hs-tier1 ~ 5, jdk-tier1 ~ 3, test/jdk/jdk/jfr and
> test/jdk/jdk/jfr/events/oldobject for 1200 iterations
>
> Thanks,
> Sangheon
>
>
>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic