United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7123165 G1: output during parallel verification can get messed up
JDK-7123165 : G1: output during parallel verification can get messed up

Details
Type:
Bug
Submit Date:
2011-12-20
Status:
Closed
Updated Date:
2012-03-29
Project Name:
JDK
Resolved Date:
2012-03-29
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs23
Fixed Versions:
hs23 (b10)

Related Reports
Backport:
Backport:

Sub Tasks

Description
Parallel heap verification in G1 currently has a flaw which is that, if different GC workers find and attempt to report issues around the same time the output can get messed up. This is not a correctness flaw, i.e. the issues will be correctly identified and reported. However, it does sometimes make it very hard to make sense of the output. It'd be helpful to ensure that the output generated by parallel heap verification is always easily readable.

                                    

Comments
SUGGESTED FIX

While each GC worker generates output during parallel heap verification we should take a lock to ensure only one worker generates output at any one time. We can use ParGCRareEvent_lock, I don't think there's much point in introducing a new one just for this.

Also note that taking the lock will not affect the performance of heap verification in the normal case (where there are no failures). It will only serialize the workers when a failure is detected which is not a big issue given that we are about to fail anyway.
                                     
2011-12-20
EVALUATION

See Description.
                                     
2011-12-20
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/3b2b58fb1425
                                     
2011-12-21
EVALUATION

http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/3b2b58fb1425
                                     
2012-03-22



Hardware and Software, Engineered to Work Together