8076110: VM crash when class is redefined with Instrumentation.redefineClasses
Andreas Eriksson
andreas.eriksson at oracle.com
Thu Jun 4 11:56:31 UTC 2015
Hi,
Please review this fix of a crash because of a class redefinition race.
Bug: https://bugs.openjdk.java.net/browse/JDK-8076110
Webrev: http://cr.openjdk.java.net/~aeriksso/8076110/webrev.00/
The crash happens when the redefine occurs while the redefined method is
still running.
This is because VM_RedefineClasses::redefine_single_class deletes the
resolution errors at redefine time, but the running method might still
need them.
This is fixed by moving the deletion of the cached resolution errors to
when the {add,purge}_previous_version functions have come to the
conclusion that no running methods need the old class any more (and
therefore no one needs the constant pool and its associated resolution
errors either).
A jtreg regression test that reproduces the problem using
redefineclasses and objectweb.asm is included in the change.
Thanks,
Andreas
More information about the hotspot-runtime-dev
mailing list