kornilova203 / flameviewer Goto Github PK
View Code? Open in Web Editor NEWTool for flamegraphs visualization
License: MIT License
Tool for flamegraphs visualization
License: MIT License
Hi Team,
While uploading a jfr generated from Zulu Openjdk in MacOS using chrome, we got the below listed exception
FlameViewer 1.0
com.oracle.jmc.flightrecorder.internal.VersionNotSupportedException
at com.oracle.jmc.flightrecorder.internal.FlightRecordingLoader.createChunkLoader(FlightRecordingLoader.java:223)
at com.oracle.jmc.flightrecorder.internal.FlightRecordingLoader.readChunks(FlightRecordingLoader.java:168)
at com.oracle.jmc.flightrecorder.internal.FlightRecordingLoader.loadStream(FlightRecordingLoader.java:51)
at com.oracle.jmc.flightrecorder.JfrLoaderToolkit.loadFile(JfrLoaderToolkit.java:24)
at com.oracle.jmc.flightrecorder.JfrLoaderToolkit.loadEvents(JfrLoaderToolkit.java:51)
at com.oracle.jmc.flightrecorder.JfrLoaderToolkit.loadEvents(JfrLoaderToolkit.java:38)
at com.github.kornilova_l.flight_parser.FlightParser.(FlightParser.java:33)
at com.github.kornilova203.flameviewer.converters.cflamegraph.JfrToStacksConverter.convert(JfrToStacksConverter.java:22)
at com.github.kornilova203.flameviewer.converters.cflamegraph.JfrToCFlamegraphConverterFactoryCli$create$1.convert(JfrToCFlamegraphConverterFactoryCli.kt:14)
at com.github.kornilova203.flameviewer.converters.cflamegraph.JfrToCFlamegraphConverterFactoryCli$create$1.convert(JfrToCFlamegraphConverterFactoryCli.kt:9)
at com.github.kornilova203.flameviewer.converters.calltraces.ToCallTracesConverterFactoryCli$create$1.convert(ToCallTracesConverterFactoryCli.kt:25)
at com.github.kornilova203.flameviewer.converters.calltraces.ToCallTracesConverterFactoryCli$create$1.convert(ToCallTracesConverterFactoryCli.kt:11)
at com.github.kornilova203.flameviewer.converters.trees.ToTreesSetConverterFactory$create$2.convert(ToTreesSetConverterFactory.kt:19)
at com.github.kornilova203.flameviewer.converters.trees.ToTreesSetConverterFactory$create$2.convert(ToTreesSetConverterFactory.kt:10)
at com.github.kornilova203.flameviewer.server.TreeManager.updateTreesSet(TreeManager.kt:30)
at com.github.kornilova203.flameviewer.server.TreeManager.getTree(TreeManager.kt:36)
Seems like needed font is missing
Maybe it should be done only when file is uploaded
Thread call-tree is not scrolled to the beginning if other thread was open before
Is there a concept of time (relative or absolute) available to display in the Call Traces or Back Traces?
Right now I'm going off of relative stack widths to find slow code to optimize. However, when I fix one slow section of code, it's hard to get a picture of how much time was saved.
Currently number of stack traces is saved. It should be replaced with time in milliseconds
While uploading a jfr file reading a pop up comes up and says file was not sent.
@kornilova-l If configured all of include setting's value is * exception occurred and process to suspended. (cannot terminate so only possible by kill -3)
I didn't saw before this kind of error.
This exception threw during execute JUnit test.
Output file: /Users/sam/Library/Caches/IntelliJIdea2017.3/flamegraph-profiler/log/com.jennifersoft.aries.pom/ActiveServiceOriginCountMetricsCollectorSpec-2018-03-13-16_46_35.ser
Configuration:
Including patterns:
.(*)Exception in thread "logging thread" java.lang.LinkageError: loader (instance of sun/misc/Launcher$AppClassLoader): attempted duplicate class definition for name: "com/github/kornilova_l/libs/com/google/protobuf/InvalidProtocolBufferException"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.github.kornilova_l.flamegraph.javaagent.logger.event_data_storage.MethodEventData.getEvents(MethodEventData.java:63)
at com.github.kornilova_l.flamegraph.javaagent.logger.Logger.logEvents(Logger.java:84)
at com.github.kornilova_l.flamegraph.javaagent.logger.Logger.run(Logger.java:62)
at java.lang.Thread.run(Thread.java:748)
I add exclude setting all of your plugin classes to prevent duplicated loading.
-> class = com.github.kornilova* method = * parameter = *
At the result, everything is ok.
I recommend to list up all classes of your plugin and prevent to visit.
See https://medium.com/netflix-techblog/netflix-flamescope-a57ca19d47bb for this very cool development.
Following exception can be fixed by ignoring 0 width nodes.
java.lang.IllegalArgumentException: Please open an issue at https://github.com/kornilova-l/flamegraph-visualizer/issues with this stack trace.: node width must be bigger than 0.
at com.github.kornilova_l.flamegraph.plugin.server.converters.file_to_call_traces.cflamegraph.Converter.validateNode(Converter.kt:74)
at com.github.kornilova_l.flamegraph.plugin.server.converters.file_to_call_traces.cflamegraph.Converter.processNode(Converter.kt:53)
at com.github.kornilova_l.flamegraph.plugin.server.converters.file_to_call_traces.cflamegraph.Converter.<init>(Converter.kt:33)
at com.github.kornilova_l.flamegraph.plugin.server.converters.file_to_call_traces.cflamegraph.CompressedFlamegraphToCallTracesConverter.convert(CompressedFlamegraphToCallTracesConverter.kt:68)
File is unsupported
is shown when parser finds unexpected line:
"[JSP/Servlet] /hdf5rest/write-vns","52552","21"
Check what lines may be included in a yourkit csv file.
What should I try when all results I ever get are "No call was registered or all methods took <1ms" instead of a flame graph?
This is the beginning of the log output in the IJ console:
"C:\Program Files (x86)\JWS\JavaSoft\JRE\jre1.8.0_131\bin\java" -Djava.library.path=C:\System9\KWS\lib\dll -Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -ea -Ddefaultprinter=PDFCreator -Ddefaultserver=PROD_S9 -Dhttps.protocols=TLSv1,SSLv2Hello -Dicon=/uz/s9client/kws/images/kws_dyn.gif -Dlocal_actions=sourcesEJB\uz\s9server\services\toegang\driver -Dlocal_settings=sourcesEJB\uz\s9server\services\toegang\driver -Dlog4j.configuration=uz/s9/kws/log4j.properties -Dmultidesktop.create.default.on.primary.screen=true -Drebel.packages=uz -DS9QueryLogic.debug.logNonUZCode=true -DS9QueryLogic.debug.multiline=true -DS9QueryLogic.debug.nbStackInfo=10,10 -DS9QueryLogic.debug.outOfOrder=true -DS9QueryLogic.debug.suppressGetAttributes=false -DS9QueryLogic.debug.threadinfo=true -DS9QueryLogic.debug=true "-Dtitle=Dynamisch KWS (preprod lokaal) (jre8) (MultiDesktop)" -Dwlpreprod=true -DJINTEGRA_NATIVE_MODE=true -Dsun.java2d.noddraw=true "-javaagent:C:\uz\Settings\IntelliJIdea\config\plugins\FlamegraphProfiler\classes\javaagent.jar=C:\uz\Settings\IntelliJIdea\system\flamegraph-profiler\log\KWS\KWS preprod local 8 MultiDesktop-2018-01-22-15_21_52.ser&C:\uz\Settings\IntelliJIdea\system\flamegraph-profiler\configuration\KWS.config" -javaagent:C:\uz\ProgramFiles\IntelliJIDEA2017.3EAP\lib\idea_rt.jar=64468:C:\uz\ProgramFiles\IntelliJIDEA2017.3EAP\bin -Dfile.encoding=windows-1252 -classpath C:\Users\jbecke4\AppData\Local\Temp\classpath1.jar uz.s9client.kws.Kws
Output file: C:\uz\Settings\IntelliJIdea\system\flamegraph-profiler\log\KWS\KWS preprod local 8 MultiDesktop-2018-01-22-15_21_52.ser
Configuration:
Including patterns:
.(*+)+
Can I find/add any other debug log info?
To improve performance FlameViewer shows only limited number of nodes to user. Currently it's implemented by hiding top levels of tree.
It's better to hide smallest nodes instead.
Snapshot version of plugin implements compressed version of flamegraph format.
But the new format is not binary therefore it is not optimal for saving disk space.
Also custom parser is implemented for the format and it is bug prone.
I suggest keeping structure of cflamegraph files but using FlatBuffers for serialization.
cflamegraph format will contain the same amount of information as regular flamegraph, therefore it will not be possible to directly use it for client-server communication #15, but it can be easily converted to more complex data.
I considered making cflamegraph format to be also client-server format, but then it would contain redundant information (that is set to speed up visualization) also client-server format may be changed and I do not want to worry about support for existing files.
at com.github.kornilova_l.flamegraph.plugin.server.converters.file_to_call_tree.fierix.FierixToCallTreeConverter.convert(FierixToCallTreeConverter.kt:18)
at com.github.kornilova_l.flamegraph.plugin.server.converters.file_to_call_tree.FileToCallTreeConverter$Companion.convert(FileToCallTreeConverter.kt:18)
at com.github.kornilova_l.flamegraph.plugin.server.trees.TreeManager.updateTreesSet(TreeManager.kt:66)
at com.github.kornilova_l.flamegraph.plugin.server.trees.TreeManager.getCallTreesPreview(TreeManager.kt:133)
at com.github.kornilova_l.flamegraph.plugin.server.tree_request_handlers.trees.TreesPreviewHandler.doProcess(TreesPreviewHandler.kt:14)
at com.github.kornilova_l.flamegraph.plugin.server.tree_request_handlers.RequestHandler.process(RequestHandler.kt:23)
at com.github.kornilova_l.flamegraph.plugin.server.ProfilerHttpRequestHandler.processGetMethod(ProfilerHttpRequestHandler.java:306)
at com.github.kornilova_l.flamegraph.plugin.server.ProfilerHttpRequestHandler.process(ProfilerHttpRequestHandler.java:272)
at org.jetbrains.io.DelegatingHttpRequestHandler$process$1.invoke(DelegatingHttpRequestHandler.kt:27)
at org.jetbrains.io.DelegatingHttpRequestHandler.process(DelegatingHttpRequestHandler.kt:42)
at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:15)
at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:11)
at org.jetbrains.io.SimpleChannelInboundHandlerAdapter.channelRead0(SimpleChannelInboundHandlerAdapter.java:20)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.handler.codec.http.cors.CorsHandler.channelRead(CorsHandler.java:95)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at org.jetbrains.io.PortUnificationServerHandler.decode(PortUnificationServerHandler.java:133)
at org.jetbrains.io.PortUnificationServerHandler.messageReceived(PortUnificationServerHandler.java:80)
at org.jetbrains.io.Decoder.channelRead(Decoder.java:38)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:677)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:612)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:529)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:491)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
at java.base/java.lang.Thread.run(Unknown Source)```
The console output when I run:
Output file: /Users/sbaker/Library/Caches/IntelliJIdea2018.1/flamegraph-profiler/log/take6/ImageServiceTest.removeMetadataFromJpegPhotoTest (1)-2018-04-27-13_06_21.ser
Configuration:
Including patterns:
com.raveu.utility.*.*(*+)
javax.imageio.*(*+)
com.drew.*.*(*+)Methods count: 34
However, when I open results I always see:
Call tree is unavailable for this file
The ser file created is about 2MB.
JMCConverter
should implement ProfilerToCompressedFlamegraphConverter
instead of ProfilerToFlamegraphConverter
@kornilova-l The url form is like below.
http://localhost:63342/flamegraph-profiler/outgoing-calls?project=uploaded-files
I already profiling using Run with Flamegraph profiler. And also I checked ser file generated normally.
After finish profiling I wanted saw Flamegraph so I clicked Upload File menu.
But I just could saw 404 Not Found message with IntelliJ IDEA 2017.3.3 message under line.
Now it displays only methods that meet some condition and hides all other calls of the same stacktraces.
Search bar is hidden on Call Tree page
macOS 10.15.3
IntelliJ Community 2019.3.3 running on Java 11
FlameViewer 0.8.1
java.lang.NullPointerException
at com.github.kornilova_l.flamegraph.plugin.server.converters.file_to_file.jmc.FlightRecorderConverter.removePackageInParameters(FlightRecorderConverter.java:32)
at com.github.kornilova_l.flamegraph.plugin.server.converters.file_to_file.jmc.FlightRecorderConverter.<init>(FlightRecorderConverter.java:18)
at com.github.kornilova_l.flamegraph.plugin.server.converters.file_to_file.jmc.JMCConverter.convert(JMCConverter.java:44)
at com.github.kornilova_l.flamegraph.plugin.server.converters.file_to_file.ProfilerToFlamegraphConverter$Companion.convert(ProfilerToFlamegraphConverter.kt:46)
at com.github.kornilova_l.flamegraph.plugin.server.converters.file_to_file.FlamegraphFileSaver.tryToConvert(ProfilerToFlamegraphConverter.kt:14)
at com.github.kornilova_l.flamegraph.plugin.server.FileUploader.tryToConvertFileToAnotherFile(FileUploader.kt:53)
at com.github.kornilova_l.flamegraph.plugin.server.FileUploader.upload(FileUploader.kt:37)
at com.github.kornilova_l.flamegraph.plugin.server.ProfilerHttpRequestHandler.uploadFile(ProfilerHttpRequestHandler.java:234)
at com.github.kornilova_l.flamegraph.plugin.server.ProfilerHttpRequestHandler.processPostMethod(ProfilerHttpRequestHandler.java:192)
at com.github.kornilova_l.flamegraph.plugin.server.ProfilerHttpRequestHandler.process(ProfilerHttpRequestHandler.java:270)
at org.jetbrains.io.DelegatingHttpRequestHandler$process$1.invoke(DelegatingHttpRequestHandler.kt:20)
at org.jetbrains.io.DelegatingHttpRequestHandler$process$2.test(DelegatingHttpRequestHandler.kt:34)
at org.jetbrains.io.DelegatingHttpRequestHandler$process$2.test(DelegatingHttpRequestHandler.kt:15)
at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.lambda$findFirstSafe$0(ExtensionProcessingHelper.java:34)
at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.computeSafeIfAny(ExtensionProcessingHelper.java:45)
at com.intellij.openapi.extensions.impl.ExtensionProcessingHelper.findFirstSafe(ExtensionProcessingHelper.java:34)
at com.intellij.openapi.extensions.ExtensionPointName.findFirstSafe(ExtensionPointName.java:55)
at org.jetbrains.io.DelegatingHttpRequestHandler.process(DelegatingHttpRequestHandler.kt:33)
at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:15)
at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:11)
at org.jetbrains.io.SimpleChannelInboundHandlerAdapter.channelRead0(SimpleChannelInboundHandlerAdapter.java:21)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.handler.codec.http.cors.CorsHandler.channelRead(CorsHandler.java:95)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:328)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:302)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1422)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:931)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:700)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:635)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:552)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:514)
at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1044)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:834)
idea.log
After installing the plugin on CLion and restarting, I do see this option: Tools->Open Flameviewer. However, clicking on it doesn't open any GUI to upload the profiler file. PFA the logs from CLion
Start using Cap'n Proto instead of Google Protobuf for client-server communications. This will speed up visualization and reduce memory consumption.
Is it possible to filter multiple packages at the same time?
It looks like the filtering is handled in Filter.kt, using Regex behind the scenes. Looks like adding a bar ('|') between packages works, but I wanted to make sure this is the correct way to filter.
If this is correct, would a note on this in the README be accepted if I submit a PR with an example?
This is a wonderfully powerful tool. Thank you for writing this excellent piece of software!
Fatal Error 1:
-1
java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:418)
at java.util.ArrayList.get(ArrayList.java:431)
at com.github.kornilova_l.libs.com.google.protobuf.RepeatedFieldBuilderV3.getBuilder(RepeatedFieldBuilderV3.java:247)
at com.github.kornilova_l.flamegraph.proto.TreeProtos$Tree$Node$Builder.getNodesBuilder(TreeProtos.java:2975)
at com.github.kornilova_l.flamegraph.plugin.server.trees.TreesSet.setTreeWidth(TreesSet.java:71)
at com.github.kornilova_l.flamegraph.plugin.server.trees.flamegraph_format_trees.StacksOCTreeBuilder.buildTree(StacksOCTreeBuilder.java:26)
at com.github.kornilova_l.flamegraph.plugin.server.trees.flamegraph_format_trees.SimpleStacksOCTreeBuilder.<init>(SimpleStacksOCTreeBuilder.java:25)
at com.github.kornilova_l.flamegraph.plugin.server.trees.flamegraph_format_trees.StacksOCTreeBuilder.<init>(StacksOCTreeBuilder.java:18)
at com.github.kornilova_l.flamegraph.plugin.server.trees.flamegraph_format_trees.FlamegraphFormatTreesSet.<init>(FlamegraphFormatTreesSet.java:30)
at com.github.kornilova_l.flamegraph.plugin.server.trees.TreeManager.updateTreesSet(TreeManager.java:86)
at com.github.kornilova_l.flamegraph.plugin.server.trees.TreeManager.getTree(TreeManager.java:94)
at com.github.kornilova_l.flamegraph.plugin.server.tree_request_handlers.AccumulativeTreeRequestHandler.getFilteredTree(AccumulativeTreeRequestHandler.java:44)
at com.github.kornilova_l.flamegraph.plugin.server.tree_request_handlers.AccumulativeTreeRequestHandler.doActualProcess(AccumulativeTreeRequestHandler.java:28)
at com.github.kornilova_l.flamegraph.plugin.server.tree_request_handlers.TreeRequestHandler.process(TreeRequestHandler.java:35)
at com.github.kornilova_l.flamegraph.plugin.server.ProfilerHttpRequestHandler.processGetMethod(ProfilerHttpRequestHandler.java:300)
at com.github.kornilova_l.flamegraph.plugin.server.ProfilerHttpRequestHandler.process(ProfilerHttpRequestHandler.java:265)
at org.jetbrains.io.DelegatingHttpRequestHandler$process$1.invoke(DelegatingHttpRequestHandler.kt:42)
at org.jetbrains.io.DelegatingHttpRequestHandler.process(DelegatingHttpRequestHandler.kt:57)
at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:29)
at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:25)
at org.jetbrains.io.SimpleChannelInboundHandlerAdapter.channelRead0(SimpleChannelInboundHandlerAdapter.java:20)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.codec.http.cors.CorsHandler.channelRead(CorsHandler.java:72)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at java.lang.Thread.run(Thread.java:745)
Fatal Error 2:
null
java.lang.NullPointerException
at com.github.kornilova_l.flamegraph.plugin.server.trees.TreeManager.getTree(TreeManager.java:95)
at com.github.kornilova_l.flamegraph.plugin.server.tree_request_handlers.AccumulativeTreeRequestHandler.getFilteredTree(AccumulativeTreeRequestHandler.java:44)
at com.github.kornilova_l.flamegraph.plugin.server.tree_request_handlers.AccumulativeTreeRequestHandler.doActualProcess(AccumulativeTreeRequestHandler.java:28)
at com.github.kornilova_l.flamegraph.plugin.server.tree_request_handlers.TreeRequestHandler.process(TreeRequestHandler.java:35)
at com.github.kornilova_l.flamegraph.plugin.server.ProfilerHttpRequestHandler.processGetMethod(ProfilerHttpRequestHandler.java:303)
at com.github.kornilova_l.flamegraph.plugin.server.ProfilerHttpRequestHandler.process(ProfilerHttpRequestHandler.java:265)
at org.jetbrains.io.DelegatingHttpRequestHandler$process$1.invoke(DelegatingHttpRequestHandler.kt:42)
at org.jetbrains.io.DelegatingHttpRequestHandler.process(DelegatingHttpRequestHandler.kt:57)
at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:29)
at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:25)
at org.jetbrains.io.SimpleChannelInboundHandlerAdapter.channelRead0(SimpleChannelInboundHandlerAdapter.java:20)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.codec.http.cors.CorsHandler.channelRead(CorsHandler.java:72)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at java.lang.Thread.run(Thread.java:745)
Fatal Error 3:
null
java.lang.NullPointerException
at com.github.kornilova_l.flamegraph.plugin.server.trees.TreeManager.getHotSpots(TreeManager.java:121)
at com.github.kornilova_l.flamegraph.plugin.server.tree_request_handlers.HotSpotsRequestHandler.doActualProcess(HotSpotsRequestHandler.java:27)
at com.github.kornilova_l.flamegraph.plugin.server.tree_request_handlers.TreeRequestHandler.process(TreeRequestHandler.java:35)
at com.github.kornilova_l.flamegraph.plugin.server.ProfilerHttpRequestHandler.processGetMethod(ProfilerHttpRequestHandler.java:291)
at com.github.kornilova_l.flamegraph.plugin.server.ProfilerHttpRequestHandler.process(ProfilerHttpRequestHandler.java:265)
at org.jetbrains.io.DelegatingHttpRequestHandler$process$1.invoke(DelegatingHttpRequestHandler.kt:42)
at org.jetbrains.io.DelegatingHttpRequestHandler.process(DelegatingHttpRequestHandler.kt:57)
at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:29)
at org.jetbrains.io.DelegatingHttpRequestHandlerBase.messageReceived(DelegatingHttpRequestHandlerBase.kt:25)
at org.jetbrains.io.SimpleChannelInboundHandlerAdapter.channelRead0(SimpleChannelInboundHandlerAdapter.java:20)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.codec.http.cors.CorsHandler.channelRead(CorsHandler.java:72)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
at java.lang.Thread.run(Thread.java:745)
How to fix this error?
"File was not sent" error is shown
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.