8218401: WRONG_PHASE: vmTestbase/nsk/jvmti test crash
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Wed Mar 20 02:17:14 UTC 2019
Hi Daniil,
I'd keep the volatile modifier for callbacksEnabled to disable compiler
optimizations.
Otherwise, looks good to me.
Another approachcould be to disable event notifications in VMDeath
callback with:
SetEventNotificationMode(JVMTI_DISABLE, JVMTI_EVENT_CLASS_LOAD, NULL);
SetEventNotificationMode(JVMTI_DISABLE, JVMTI_EVENT_BREAKPOINT, NULL);
. . .
Thanks,
Serguei
On 3/18/19 6:58 PM, Daniil Titov wrote:
> Hi Serguei and JC,
>
> Please review a new version of the fix that locks a monitor across the callbacks, as Serguei suggested.
>
> Webrev: http://cr.openjdk.java.net/~dtitov/8218401/webrev.02/
> Bug: https://bugs.openjdk.java.net/browse/JDK-8218401
>
> Thanks!
> --Daniil
>
>
> On 3/18/19, 9:47 AM, "serguei.spitsyn at oracle.com" <serguei.spitsyn at oracle.com> wrote:
>
> Hi Daniil,
>
> The JVMTI phase can change in the middle of callback work after the
> check you added.
> I'd suggest to lock a raw monitor across the callbacks to make them atomic.
>
> Thank you for taking care about this issue!
>
> Thanks,
> Serguei
>
>
>
> On 3/15/19 16:08, Daniil Titov wrote:
> > Please review the change that fixes 3 tests that intermittently fail with JVMTI_ERROR_WRONG_PHASE error.
> >
> > The problem here is that the callbacks these tests enable keep processing events and perform JVMTI calls after VM is terminated. The fix makes these test listen for VMDeath event and quick return from the callbacks after VMDeath event is received.
> >
> > Webrev: http://cr.openjdk.java.net/~dtitov/8218401/webrev.01/
> > Bug: https://bugs.openjdk.java.net/browse/JDK-8218401
> >
> > Thanks!
> > -Daniil
> >
> >
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20190319/5d59fb01/attachment.html>
More information about the serviceability-dev
mailing list