RFR(M) 8243500: SA: Incorrect BCI and Line Number with jstack if the top frame is in the interpreter (BSD and Windows)

Chris Plummer chris.plummer at oracle.com
Mon Apr 27 19:17:29 UTC 2020


Ping! Please help review if you can.

thanks,

Chris

On 4/24/20 12:44 AM, Chris Plummer wrote:
> Hello,
>
> Please review the following:
>
> https://bugs.openjdk.java.net/browse/JDK-8243500
> http://cr.openjdk.java.net/~cjplummer/8243500/webrev.00/index.html
>
> A couple years ago JDK-8214226 fixed an issue on Linux-x64 with SA 
> stack dumps not properly displaying the correct line number for the 
> topmost frame if it was interpreted. The issue was that SA was always 
> relying on frame->bcp when in fact the BCP is kept in R13, and only 
> flushed to frame->bcp when needed as a scratch register. So this means 
> that SA was in most cases grabbing a stale value from frame->bcp.
>
> The fix for JDK-8214226 was mostly made in X86Frame.java to support 
> using the BCP register for the topmost frame instead using frame->bcp. 
> This fix actually had a bug in it that was causing the "illegal bci" 
> failures we've been seeing. There is already a separate webrev and RFR 
> out for that:
>
> https://bugs.openjdk.java.net/browse/JDK-8231634
> http://cr.openjdk.java.net/~cjplummer/8231634/webrev.00/index.html
>
> What this RFR addresses is the fact that part of the fix for 
> JDK-8214226 was in LinuxAMD64JavaThreadPDAccess.java, but the same 
> changes were never made to WindowsAMD64JavaThreadPDAccess.java or 
> BsdAMD64JavaThreadPDAccess.java. This fix addresses those two ports. 
> Here's the CR and changeset for reference:
>
> https://bugs.openjdk.java.net/browse/JDK-8214226
> http://hg.openjdk.java.net/jdk/jdk/rev/9a73a4e4011f
>
> The changes for the fix are pretty trivial. The more complicated part 
> is the test I added that will reproduce the issue 100% of the time on 
> platforms where SA does not properly check the BCP register. For this 
> reason I've used @requires to limit running this test on just those 
> platforms I know have the support in place. The test has pretty good 
> comments on how it works, so I won't go into details here.
>
> thanks,
>
> Chris



More information about the serviceability-dev mailing list