RFR(S) 8161598,,Kitchensink fails: assert(nm->insts_contains(original_pc)) failed: original PC must be in nmethod/CompiledMethod

dean.long at oracle.com dean.long at oracle.com
Tue Aug 9 17:39:02 UTC 2016



On 8/4/16 3:28 PM, dean.long at oracle.com wrote:
> https://bugs.openjdk.java.net/browse/JDK-8161598
> http://cr.openjdk.java.net/~dlong/8161598/webrev/
> Sorry, this issue is Confidential.  The problem is similar to 8029441, 
> where we suspend a thread and use pd_get_top_frame_for_profiling() to 
> get the top frame for stack walking.  The problem is "last Java frame" 
> anchor frames on x86. In lots of places we do not store last_Java_pc.  
> This is OK in the synchronous stack walk case done by the current 
> thread.  But in the asynchronous case, there are small windows where 
> it's not always safe to get PC from sp[-1].
> The solution is not to treat x86 anchor frames as "always walkable".  
> Instead, we follow the example of sparc and make them walking by 
> filling in last_Java_pc when it's safe.
> I went for the minimal fix, resetting clear_pc to true in 
> reset_last_Java_frame() but not changing the API and all the callers.  
> I can fix this if reviewers feel strongly about it.
> dl

More information about the hotspot-runtime-dev mailing list