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@openjdk.java.net; hotspot-runtime-...@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.spit...@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

Reply via email to