JDK-6902701 : G1: protect debugging code related to 6898948 with a debug flag
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs17
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2009-11-18
  • Updated: 2013-09-18
  • Resolved: 2010-01-14
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u21Fixed 7Fixed hs17Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
Having collected the debugging data related to 6898948 from two nights of
testing, we want to turn off the assert following the data
dumping by protecting with a debug flag defaulting to false.
This will allow the debug JVM to, by default, correct the
problem and continue operation, just as in product mode,
rather than failing upon encountering the problem.

Comments
EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/23b9a8d315fc
19-11-2009

EVALUATION Yes.
18-11-2009

SUGGESTED FIX diff -r 89f1b9ae8991 src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp --- a/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Fri Nov 13 11:55:26 2009 -0800 +++ b/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Wed Nov 18 14:33:47 2009 -0800 @@ -1528,18 +1528,17 @@ void G1CollectorPolicy::record_collectio _recent_prev_end_times_for_all_gcs_sec->dump(); gclog_or_tty->print_cr("GC = %3.3f, Interval = %3.3f, Ratio = %3.3f", _recent_gc_times_ms->sum(), interval_ms, recent_avg_pause_time_ratio()); - // TEMPORARY: In debug mode, terminate the JVM, so nightly testing explicitly - // flags the sighting by failing the test. - assert(false, "Debugging data for CR 6898948 has been dumped above"); -#else // PRODUCT - // Clip ratio between 0.0 and 1.0 + // In debug mode, terminate the JVM if the user wants to debug at this point. + assert(!G1FailOnFPError, "Debugging data for CR 6898948 has been dumped above"); +#endif // !PRODUCT + // Clip ratio between 0.0 and 1.0, and continue. This will be fixed in + // CR 6902692 by redoing the manner in which the ratio is incrementally computed. if (_recent_avg_pause_time_ratio < 0.0) { _recent_avg_pause_time_ratio = 0.0; } else { assert(_recent_avg_pause_time_ratio - 1.0 > 0.0, "Ctl-point invariant"); _recent_avg_pause_time_ratio = 1.0; } -#endif // PRODUCT } } diff -r 89f1b9ae8991 src/share/vm/gc_implementation/g1/g1_globals.hpp --- a/src/share/vm/gc_implementation/g1/g1_globals.hpp Fri Nov 13 11:55:26 2009 -0800 +++ b/src/share/vm/gc_implementation/g1/g1_globals.hpp Wed Nov 18 14:33:47 2009 -0800 @@ -242,6 +242,10 @@ product(bool, G1UseSurvivorSpaces, true, \ "When true, use survivor space.") \ \ + develop(bool, G1FailOnFPError, false, \ + "When set, G1 will fail when it encounters an FP 'error', " \ + "so as to allow debugging") \ + \ develop(bool, G1FixedTenuringThreshold, false, \ "When set, G1 will not adjust the tenuring threshold") \ \
18-11-2009