RFR (S) 8025238: nsk/jvmti/scenarios/bcinstr/BI04/bi04t002 crashed with SIGSEGV

Coleen Phillimore coleen.phillimore at oracle.com
Thu Oct 3 11:02:45 PDT 2013


Summary: Redefined class in stack trace may not be found by method_idnum 
so handle null.

This is a simple change.  I had another change to save the method name 
(as u2) in the backtrace, but it's not worth the extra footprint in 
backtraces for this rare case.

The root problem was that we save method_idnum in the backtrace (u2) 
instead of Method* to avoid Method* from being redefined and 
deallocated.  I made a change to InstanceKlass::method_from_idnum() to 
return null rather than the last method in the list, which causes this 
crash.   Dan and I went down the long rabbit-hole of why method_idnum is 
changed for obsolete methods and we think there's some cleanup and 
potential bugs in this area.  But this is not that change.  I'll file 
another bug to continue this investigation for jdk9 (or 8uN).

Staffan created a test - am including core-libs for the review request.  
Also tested with all of the vm testbase tests, mlvm tests, and 
java/lang/instrument tests.

open webrev at http://cr.openjdk.java.net/~coleenp/8025238/
bug link https://bugs.openjdk.java.net/browse/JDK-8025238

test case for jdk8 repository:

open webrev at http://cr.openjdk.java.net/~coleenp/8025238_jdk

Thanks,
Coleen


More information about the serviceability-dev mailing list