RFR (S) 8144518: ClassVerboseTest crashes on Windows

Coleen Phillimore coleen.phillimore at oracle.com
Wed Jan 18 02:13:13 UTC 2017



On 1/17/17 7:02 PM, David Holmes wrote:
> Hi Coleen,
>
> The bug report does not explain the problem so it is unclear whether 
> this workaround is minimal. Also some commentary somewhere would be 
> useful else the bug might return inadvertently - more generally I'd 
> like to understand what other code might be impacted by this.

Christian and I spent a solid week looking for the windows Visual Studio 
bug that caused this but weren't able to find it.  He verified that it's 
fixed in VS2015.  I think that's in the bug report.  The code generated 
is in the bug report with annotations of what lines the code it was 
executing and which instructions caused the truncation and sign 
extension leading to a negative offset from the start of _bcp.

There's a small reproducer in the bug report for 8144518.

I did a grep of all the "address.*-" and looked through the lines of 
code but I didn't generate windows assembly code to examine for all the 
pointer subtractions.  I don't plan to do this.   From the reproducer, 
there needed to be the swap_u4, even though the load that crashed was 
before the swap_u4 code.  The scenario that caused this bug seems very 
specific and if it exists in any other places in the jvm, we can keep an 
eye out for it.  This crash, while intermittent, was fairly consistent.

We think it's best to get this workaround into jdk 9 before ZBB since 
this bug has been seen several times, and we finally narrowed down the 
problem and don't have to close it as not reproduceable again.

There is a line above the dest_offset_at code which I was going to 
remove, since it's describing code I changed, which doesn't make for a 
good comment.  Any further commentary or explanation of this bug will be 
vague, since we don't have the VS compiler to debug to find the real 
problem, and won't make sense in the source code.

Did you look at the code? It's a simplification of the expression that 
was in the original, that would have been better from the start.

Thanks,
Coleen

>
> Thanks,
> David
>
> On 18/01/2017 8:49 AM, Coleen Phillimore wrote:
>> I should have also sent this to hotspot-dev, since Bytecode_tableswitch
>> is used by the compiler ci code.
>> thanks,
>> Coleen
>>
>>
>> On 1/17/17 1:49 PM, Coleen Phillimore wrote:
>>> Summary: simplify Bytecode_tableswitch code so windows doesn't
>>> generate bad code for it.
>>>
>>> open webrev at http://cr.openjdk.java.net/~coleenp/8144518.01/webrev
>>> bug link https://bugs.openjdk.java.net/browse/JDK-8144518
>>>
>>> Verified generated code does not have sign extended value that is
>>> subtracted, giving the wrong offset.  Ran all rbt nightly tests. Ran
>>> some -Xcomp tests.
>>>
>>> See more info in bug https://bugs.openjdk.java.net/browse/JDK-8171968
>>>
>>> Thanks,
>>> Coleen
>>>
>>>
>>



More information about the hotspot-runtime-dev mailing list