8076110: VM crash when class is redefined with Instrumentation.redefineClasses

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Thu Jun 4 21:23:19 UTC 2015

Added the SVC list as it impacts the Serviceability as well.


On 6/4/15 4:56 AM, Andreas Eriksson wrote:
> 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 serviceability-dev mailing list