JDK-7022943 : G1: improve logging to avoid interleaved numbers
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs21
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2011-02-28
  • Updated: 2013-09-18
  • Resolved: 2011-04-24
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 7 Other
7Fixed hs21Fixed
Description
The G1 logging currently does repeated calls to the gclog_or_tty->print() method before calling gclog_or_tty->print_cr(). This means that several threads can end up writing information in the same log line.

This makes it difficult to write tools that parse the log files. The performance team is currently experiencing problems with time stamps from the concurrent mark thread being written in the middle of G1 pause information.

Comments
EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/c93aa6caa02f
25-03-2011

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/c93aa6caa02f
21-03-2011

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/c93aa6caa02f
07-03-2011

SUGGESTED FIX Use a small char* buffer and log intermediate information to that buffer. Then just do one call to gclog_or_tty->print_cr() when the information is complete. *** (#1 of 1): [ UNSAVED ] ###@###.###
28-02-2011

WORK AROUND U.
28-02-2011