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

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Tue Apr 28 20:02:26 UTC 2020


Hi Chris,

LGTM++
The test is interesting.

Thanks,
Serguei



On 4/28/20 12:16, Chris Plummer wrote:
> Thanks Alex!
>
> Can I get one more review please?
>
> Chris
>
> On 4/27/20 6:52 PM, Alex Menkov wrote:
>> Hi Chris,
>>
>> The fix looks good.
>>
>> --alex
>>
>> On 04/27/2020 12:17, Chris Plummer wrote:
>>> 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