gctoolkit icon indicating copy to clipboard operation
gctoolkit copied to clipboard

Generational ZGC parsing logic assumes only one collection is happening at any given time

Open akiselev98 opened this issue 1 year ago • 0 comments
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

sample-gc.log

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.

akiselev98 avatar Oct 10 '24 19:10 akiselev98