code review request for more StringTable verification code (8019835)
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Mon Sep 16 10:43:55 PDT 2013
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 serviceability-dev
mailing list