RFR(S): 8191229: serviceability/jvmti/GetOwnedMonitorInfo/GetOwnedMonitorInfoTest.java fails with NoClassDefFoundError
Chris Plummer
chris.plummer at oracle.com
Thu Dec 7 01:27:43 UTC 2017
Hi Alex,
Good catch. I guess it doesn't blow up because we only enable the two
callbacks we setup. It looks like we usually zero it out with:
memset(&callbacks, 0, sizeof(callbacks));
So I'll go with that fix.
thanks,
Chris
On 12/6/17 4:48 PM, Alex Menkov wrote:
> +1
>
> Chris, while you are there could you please fix a minor issue with the
> native part of the test - Agent_Initialize doesn't zero callbacks
> struct (only sets MonitorContendedEnter/MonitorContendedEntered):
>
> - jvmtiEventCallbacks callbacks;
> + jvmtiEventCallbacks callbacks = {0};
>
> --alex
>
> On 12/06/2017 15:33, serguei.spitsyn at oracle.com wrote:
>> Hi Chris,
>>
>> It looks good to me.
>> I wonder if we have other similar cases like this in the JVMTI tests.
>>
>> Thanks,
>> Serguei
>>
>>
>> On 12/6/17 14:38, Chris Plummer wrote:
>>> Hello,
>>>
>>> Please review the following:
>>>
>>> https://bugs.openjdk.java.net/browse/JDK-8191229
>>> http://cr.openjdk.java.net/~cjplummer/8191229/webrev.00/
>>>
>>> The test is testing contended monitor support. After registering the
>>> callback, it gets an unexpected notification of a contended monitor,
>>> which is happening while the finalizer thread is running. In the
>>> callback the test does a FindClass to find a test class, but the
>>> classloader context is not correct when the finalizer thread is
>>> current, so FindClass fails and leaves an exception pending
>>> (probably blowing away the finalzer thread) and also (separately)
>>> causes the test to fail. It's unknown why this callback is suddenly
>>> being triggered, but the callback itself is not a bug, and the test
>>> needs to defend against it.
>>>
>>> The fix is to lookup the test class during test initialization and
>>> keep it cached, rather than look it up every time there is a
>>> contended monitor callback.
>>>
>>> thanks,
>>>
>>> Chris
>>
More information about the serviceability-dev
mailing list