gctoolkit
gctoolkit copied to clipboard
Generational ZGC parsing logic assumes only one collection is happening at any given time
trafficstars
Generational ZGC runs two garbage collectors concurrently (major and minor). The current implementation of ZGCParser assumes that at any given time, there can be at most one cycle happening.
When a minor collection starts before the major collection has finished, the information from the major collection is lost.
Example GC log snippet
Sequence of events:
- Major collection (GC 13) starts
- GC 13 performs young generation collection
- Minor collection (GC 14)
- Minor collection (GC 15), and there's some log lines from GC 13 mixed in
- GC 13 finishes
When I ran this through the library, it loses track of GC 13 entirely.
I know you guys were planning to release a new version soon-ish, and wanted to make sure this was on your radar.