RFR(S): 8008357: [sampling] assert(sender_blob->is_runtime_stub() || sender_blob->is_nmethod()) failed: Impossible call chain

Rickard Bäckman rickard.backman at oracle.com
Fri Mar 1 01:27:52 PST 2013


Hi all,

here comes another update to frame.safe_for_sender. 
If the PC at a place where the stack doesn't match the _frame_size we sometimes read an invalid return PC. 
In this case we read one that pointed into the Safepoint blob. 

We now pretty much guarded for all kind of blobs in safe_for_sender,
so I've changed the method to not assert in the end but to do it the same was as the frame_sparc.cpp did it. Everything that is not
a nmethod at the end of the method is not safe. 

I've also changed another check for a frame_size == 0 to frame_size <= 0 to make it somewhat more safer.

The bug: http://bugs.sun.com/view_bug.do?bug_id=8008357
Webrev: http://cr.openjdk.java.net/~rbackman/8008357/

This webrev is for HS24.

Thanks
/R


More information about the serviceability-dev mailing list