Comments (9)
@loyispa PR's are always welcome :-)
from gctoolkit.
This is a bug as something must have gotten lost. I'll make sure this is corrected.
from gctoolkit.
@loyispa I've reproduced the problem in a test which I'll check that in (branch 318). The issue is that EventSource.GENERATIONAL and EventSource.CMS_PREUNIFIED both produce an InitialMark and a Remark event. This is because these event are pause events and need to be treated as such by queries that process GENERATIONAL events. However, these events are also an integral part of the CMS cycle so they do belong in both parsers.
The difference between the unified and pre-unified handling of CMS is that in the unified log parser, the generational parser manages the CMS cycle. This prevents the duplication problem. Thus the solution here is to merge the CMS parser into the generational parser. The trick in this is to ensure time order. All events are streamed in the order of time in which they started.
I was going to suggest a work-around but now I see that my work-around won't work as the remark start times need to be corrected. Again, the best way to correct this is to combine the parsers.
A second work around would be to process GENERATIONAL separately from CMS_PREUNIFIED. You could combine the results after the fact. This complication could be reversed once the compilers are merged.
from gctoolkit.
First cut at merging CMSParser into GenerationalHeapParser. To use this replace EventSource.CMS_PREUNIFIED with EventSource.GENERATIONAL. Sorry, I have some issues with my github account that is preventing me from pushing a branch. The branch is here @ https://github.com/kcpeppe/gctoolkit/tree/318
from gctoolkit.
@loyispa the current PR contains a fix.
from gctoolkit.
@kcpeppe - over to you :-)
from gctoolkit.
@kcpeppe Sorry to bother you. Do you have plan to fix the issue? If not, maybe i could provide some help. Removing CMSInitialMark from GenerationalHeapParser is the simplest way, right?
from gctoolkit.
I'm currently looking at this along with another parsing bug that I've discovered.
from gctoolkit.
@kcpeppe Thank you, I will wait for it to be fixed.
from gctoolkit.
Related Issues (20)
- gen-z support in Aggregator/Aggregation
- Java 17 Parallel Old/New Parsing has altered from JDK 11, impacting what is reported as promoted bytes and what is reported in young gen HOT 2
- Memory pool size data HOT 2
- IllegalStateException: Already undeployed HOT 5
- Don't need of additional stream. HOT 2
- VertxJVMEventChannel could not be instantiated HOT 4
- Gctoolkit doesnt parse this log HOT 5
- GCtoolkit doesnt find the full gc pattern HOT 2
- How do code with GitHub without installing git
- UnifiedG1GCParser doesn't recognize survivor & eden occupancy HOT 3
- Unified Log new Decorator not supported HOT 1
- CMSTenuredPoolParser does not parse initialMark and CMSRemark correctly
- Should ConcurrentModeFailure and ConcurrentModeInterrupted implement CMSPhase ? HOT 8
- new release request HOT 6
- [I/O] GCLogFile.diary() open the file 2 times and don't release it HOT 1
- AbstractJavaVirtualMachine.getCommandLine() is currently stubbed out, can't retrieve CLI parameters for Pre-Unified log. HOT 2
- NPE in Aggregation.estimatedStartTime() when processing a Pre-Unified GC log with timestamps only. HOT 6
- GCToolKit support for simple logs
- Generational parser does not seem to handle GC Cause included in young event. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gctoolkit.