-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JVM GC output cannot be parsed when the JVM GC policy is set to 'Balanced' #88
Comments
The GC parser code is pretty old, so I am not surprised newer GC policies don't work. If you want to attach a sample log, I can take a look and see how much effort it would be to add. I am not 100% sure balanced GC data would even fit into the current data model / data types that currently exist. |
Hi Apologies, I missed the update during IBM's mail difficulties. Please find attached an example verbose gc file |
I've added code that skips processing of data when this happens. However, the root cause is that the data the parser expects at the beginning of the GC cycle is not present for one or more of the collections. So, at the end of the GC cycle, data will not be calculated. See com.ibm.nmon.parser.gc.state.JavaGCCycle.calculateTotalSizes(GCParserContext). I'd need to study a lot more of what balanced GC in this JVM version is actually doing to understand the effect of this. To really fix it, new calculations and maybe even completely new handling of the data is needed. At this point, I think it might be better for you look at other GC parsers that focus on keeping up with all the different GC methods. |
ok, thanks for the investigation and endeavoring to fix the issue |
When parsing a file either through code or with the NMONVisualizer client , you get the following when trying to process a GC log file generated by a JVM with the GC policy set to 'Balanced':
ava.lang.IllegalArgumentException: record does not contain any data for DataType GCBEF (gc)
at com.ibm.nmon.data.DataRecord.getData(DataRecord.java:95)
at com.ibm.nmon.parser.gc.state.JavaGCCycle.calculateTotalSizes(JavaGCCycle.java:45)
at com.ibm.nmon.parser.gc.state.Java7GCCycle.endElement(Java7GCCycle.java:110)
at com.ibm.nmon.parser.gc.VerboseGCParser.endElement(VerboseGCParser.java:85)
at com.ibm.nmon.parser.BasicXMLParser.parse(BasicXMLParser.java:148)
at com.ibm.nmon.parser.BasicXMLParser.parse(BasicXMLParser.java:27)
at com.ibm.nmon.parser.gc.VerboseGCParser.parse(VerboseGCParser.java:52)
at com.ibm.nmon.NMONVisualizerApp.parse(NMONVisualizerApp.java:163)
at com.ibm.nmon.gui.file.ParserRunner.run(ParserRunner.java:73)
at java.lang.Thread.run(Unknown Source)
The text was updated successfully, but these errors were encountered: