RFR 8051398: jvmti tests fieldacc002, fieldmod002 fail in nightly with errors: (watch#0) wrong location
Coleen Phillimore
coleen.phillimore at oracle.com
Thu Jul 31 00:49:52 UTC 2014
Thank you, Serguei! I thought the code removed was something cut/pasted
from post_field_modification, which does something for each case. I
thought it looked strange because it has all cases except vtos, so
essentially it's asserting that the cpCache doesn't get initialized to
void for getfield, which should be asserted somewhere else if it's a
useful test. It was visual noise.
Thanks!
Coleen
On 7/30/14, 7:28 PM, serguei.spitsyn at oracle.com wrote:
> Coleen,
>
> The fix looks good to me.
> I only had the same minor comments that Dan already asked below.
> The code removed in the interpreterRuntime.cpp looks like an assert
> but I'm not sure how useful it is.
>
> Thanks,
> Serguei
>
> On 7/30/14 1:20 PM, Coleen Phillimore wrote:
>>
>> On 7/30/14, 3:58 PM, Daniel D. Daugherty wrote:
>>> On 7/30/14 1:20 PM, Coleen Phillimore wrote:
>>>> Summary: Didn't handle NULL bcp for native methods
>>>>
>>>> bcp is set to NULL in the interpreter frame for native methods. x86
>>>> generate_native_entry() contains a call_VM that sets the bcp
>>>> address to the beginning of code, but sparc doesn't. I don't think
>>>> ppc does either. The code I changed, doesn't handle a null bcp
>>>> which post_field_access and post_field_modification tests call from
>>>> JNI for a native method.
>>>>
>>>> open webrev at http://cr.openjdk.java.net/~coleenp/8051398/
>>>
>>> src/share/vm/interpreter/interpreterRuntime.cpp
>>> I'm not seeing the reason for the code deletion here.
>>> Just re-read the bug and I'm still not seeing it.
>>> Could be that I've been away from this code for too long.
>>
>> I was debugging this and found this useless piece of code, so while
>> not directly related to the cause of the bug, it was in the path of
>> the bug.
>>>
>>> src/share/vm/oops/method.hpp
>>> line 652: address bcp_from(address bci) const;
>>> Should the prototype parameter name be 'bcp' instead
>>> of 'bci' since the type is address?
>>>
>>
>> You're right. I will make that bcp.
>>> src/share/vm/oops/method.cpp
>>> line 287: if (is_native() && bcp == 0) {
>>> line 288: return code_base() + (intptr_t)bcp;
>>> Why add '(intptr_t)bcp' since you know it is zero?
>>>
>>
>> True. I don't need to add bcp. That saves a cast.
>>
>> Thanks!
>> Coleen
>>
>>> src/share/vm/runtime/frame.cpp
>>> No comments.
>>>
>>>
>>> Dan
>>>
>>>
>>>
>>>> bug link https://bugs.openjdk.java.net/browse/JDK-8051398
>>>>
>>>> Tested with jck vm/jvmti, jtreg, and NSK internal tests. No test
>>>> added because there's a test that already tests this.
>>>>
>>>> Thanks,
>>>> Coleen
>>>>
>>>>
>>>
>>
>
More information about the hotspot-dev
mailing list