code review request for more StringTable verification code (8019835)

Daniel D. Daugherty daniel.daugherty at oracle.com
Mon Sep 16 15:19:14 PDT 2013


Thanks for re-review!

Dan


On 9/16/13 4:17 PM, Ron Durbin wrote:
> Dan it looks good,
>
> Thx
> Ron
>
>> -----Original Message-----
>> From: Daniel D. Daugherty
>> Sent: Monday, September 16, 2013 11:48 AM
>> To: Serguei Spitsyn
>> Cc: serviceability-dev at openjdk.java.net; hotspot-runtime-dev at openjdk.java.net
>> Subject: Re: code review request for more StringTable verification code (8019835)
>>
>> Thanks for quick re-review!
>>
>> Dan
>>
>>
>> On 9/16/13 11:43 AM, serguei.spitsyn at oracle.com wrote:
>>> Looks nice.
>>>
>>> Thanks,
>>> Serguei
>>>
>>> On 9/16/13 10:08 AM, Daniel D. Daugherty wrote:
>>>> Greetings,
>>>>
>>>> I have some new diagnostic code that I would like to add to the
>>>> system that was developed during my hunt for this bug:
>>>>
>>>>      8019835 Strings interned in different threads equal but does not ==
>>>>      http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8019835
>>>>      https://bugs.openjdk.java.net/browse/JDK-8019835
>>>>
>>>> Here is the third round HSX-25 webrev URL:
>>>>
>>>> OpenJDK: http://cr.openjdk.java.net/~dcubed/8019835-webrev/2-hsx25/
>>>> Internal:
>>>> http://javaweb.us.oracle.com/~ddaugher/8019835-webrev/2-hsx25/
>>>>
>>>> This fix was reviewed internally by the following OpenJDK users:
>>>> rdurbin, sspitsyn, and coleenp.
>>>>
>>>> Please note that while this code does detect StringTable corruption
>>>> due to bad memory, that is not the primary purpose. The primary
>>>> purpose of the new code is to verify all StringTable invariants.
>>>>
>>>> Testing:
>>>> - JPRT build and test on all platforms with the default value of
>>>>    -XX:VerifyStringTableAtExit set to true
>>>> - Aurora Adhoc testing on all platforms with product and fastdebug bits
>>>>    with the default value of -XX:VerifyStringTableAtExit set to true
>>>> - Tested on the system with bad memory named in 8019835 and it nicely
>>>>    shows various types of StringTable corruptions.
>>>>
>>>> As always, comments, questions and suggestions are welcome.
>>>>
>>>> Dan
>>>>
>>>> P.S.
>>>> Changes between second and third rounds:
>>>> - removed the redundant code in compare_entries() that Coleen spotted
>>>>
>>>> Changes between first and second rounds:
>>>> - add missing String oop check to StringTable::compare_entries(); only
>>>>    comes into play when an error happens
>>>> - add mesg_mode parameter to verify_entry() to clarify when we should
>>>>    be supressing duplicate error messages
>>>> - refactor StringTable::verify_and_compare_entries() into two phases
>>>>    for clarity:
>>>> - phase 1 verifies all entries in the StringTable
>>>> - phase 2 compares all entries in the StringTable



More information about the hotspot-runtime-dev mailing list