[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-serviceability-dev
Subject: Re: RFR: 8200195 : serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java crashes with
From: Chris Plummer <chris.plummer () oracle ! com>
Date: 2018-04-09 22:57:00
Message-ID: 3e5e8c8b-a2e4-3686-8cd1-fef4ceb87bec () oracle ! com
[Download RAW message or body]
On 4/9/18 3:04 PM, Alex Menkov wrote:
> updated webrev:
> http://cr.openjdk.java.net/~amenkov/field_access_graal/webrev.02/
> (javaEnv is replaced with jni_env)
Looks good.
>
> On 04/09/2018 14:35, David Holmes wrote:
>> +1
>>
>> Though I'd also like to understand why the test only fails sometimes
>> and which other thread is involved?
>
> It always fails with Graal compiler on win, linux and macosx.
> Looks like with Graal compiler access/modification events are sent on
> several threads (sorry, I don't have enough knowledge about Graal).
>
One thing to be careful of is that testResultClass and testResultObject
may not be valid in the thread that is doing the GetFieldID() call.
These were setup in Java_FieldAccessWatch_startTest() which might have
been a different thread, with a different ClassLoader hierarchy, than
the callback thread. I ran into this problem in another test where there
was an unexpected callback from a finalizer thread. Probably in this
case the worse that can happen is an exception, and the test deals with
that.
Chris
> --alex
>
>>
>> Thanks,
>> David
>>
>> On 10/04/2018 7:28 AM, Chris Plummer wrote:
>>> Hi Alex,
>>>
>>> I'd suggest renaming javaEnv to jni_env to be consistent. Not sure
>>> why javaEnv was chosen in the original implementation. Otherwise the
>>> changes look good.
>>>
>>> thanks,
>>>
>>> Chris
>>>
>>> On 4/9/18 2:13 PM, Alex Menkov wrote:
>>>> Hi all,
>>>>
>>>> Please review a fix for
>>>> https://bugs.openjdk.java.net/browse/JDK-8200195
>>>> webrev: http://cr.openjdk.java.net/~amenkov/field_access_graal/webrev/
>>>>
>>>> The problem with the test is it uses cached JNIEnv value instead
>>>> using a value passed to the callbacks. JNIEnv is valid only for the
>>>> current thread.
>>>>
>>>> --alex
>>>
>>>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic