Uploaded image for project: 'Java Mission Control'
  1. Java Mission Control
  2. JMC-7496

Heatmap rendering drains the heap memory

XMLWordPrintable

      Rendering stack trace on heat map drains the heap memory and causes out of memory exception and performance delays.

      Ways to reproduce: Enable heat map and open JFRs with more number of threads and relatively higher stack depth. Switch between JFR pages and watch heat map rendering.

       

      Exception in thread "HeatmapCalculation-1" java.lang.OutOfMemoryError: Java heap space
      	at java.base/java.util.Arrays.copyOf(Arrays.java:3537)
      	at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:229)
      	at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:789)
      	at java.base/java.lang.StringBuilder.append(StringBuilder.java:242)
      	at org.openjdk.jmc.flightrecorder.serializers.json.StructuredWriter.write(StructuredWriter.java:170)
      	at org.openjdk.jmc.flightrecorder.serializers.json.JsonWriter.writeEscaped(JsonWriter.java:190)
      	at org.openjdk.jmc.flightrecorder.serializers.json.JsonWriter.writeEscaped(JsonWriter.java:148)
      	at org.openjdk.jmc.flightrecorder.serializers.json.JsonWriter.writeStringValue(JsonWriter.java:135)
      	at org.openjdk.jmc.flightrecorder.serializers.json.JsonWriter.writeField(JsonWriter.java:84)
      	at org.openjdk.jmc.flightrecorder.serializers.json.IItemCollectionJsonSerializer.writeFrame(IItemCollectionJsonSerializer.java:151)
      	at org.openjdk.jmc.flightrecorder.serializers.json.IItemCollectionJsonSerializer.writeStackTrace(IItemCollectionJsonSerializer.java:139)
      	at org.openjdk.jmc.flightrecorder.serializers.json.IItemCollectionJsonSerializer.writeEventAttributes(IItemCollectionJsonSerializer.java:165)
      	at org.openjdk.jmc.flightrecorder.serializers.json.IItemCollectionJsonSerializer.writeEvent(IItemCollectionJsonSerializer.java:126)
      	at org.openjdk.jmc.flightrecorder.serializers.json.IItemCollectionJsonSerializer.writeRecording(IItemCollectionJsonSerializer.java:96)
      	at org.openjdk.jmc.flightrecorder.serializers.json.IItemCollectionJsonSerializer.toJsonString(IItemCollectionJsonSerializer.java:66)
      	at org.openjdk.jmc.flightrecorder.heatmap.views.HeatmapView$ModelRebuildRunnable.run(HeatmapView.java:104)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
      	at java.base/java.lang.Thread.run(Thread.java:833)
      Exception in thread "HeatmapCalculation-3" java.lang.OutOfMemoryError: Java heap space
      	at java.base/java.util.Arrays.copyOf(Arrays.java:3537)
      	at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:229)
      	at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:789)
      	at java.base/java.lang.StringBuilder.append(StringBuilder.java:242)
      	at org.openjdk.jmc.flightrecorder.serializers.json.StructuredWriter.write(StructuredWriter.java:170)
      	at org.openjdk.jmc.flightrecorder.serializers.json.JsonWriter.writeEscaped(JsonWriter.java:190)
      	at org.openjdk.jmc.flightrecorder.serializers.json.JsonWriter.writeEscaped(JsonWriter.java:148)
      	at org.openjdk.jmc.flightrecorder.serializers.json.JsonWriter.writeStringValue(JsonWriter.java:135)
      	at org.openjdk.jmc.flightrecorder.serializers.json.JsonWriter.writeField(JsonWriter.java:84)
      	at org.openjdk.jmc.flightrecorder.serializers.json.IItemCollectionJsonSerializer.writeFrame(IItemCollectionJsonSerializer.java:151)
      	at org.openjdk.jmc.flightrecorder.serializers.json.IItemCollectionJsonSerializer.writeStackTrace(IItemCollectionJsonSerializer.java:139)
      	at org.openjdk.jmc.flightrecorder.serializers.json.IItemCollectionJsonSerializer.writeEventAttributes(IItemCollectionJsonSerializer.java:165)
      	at org.openjdk.jmc.flightrecorder.serializers.json.IItemCollectionJsonSerializer.writeEvent(IItemCollectionJsonSerializer.java:126)
      	at org.openjdk.jmc.flightrecorder.serializers.json.IItemCollectionJsonSerializer.writeRecording(IItemCollectionJsonSerializer.java:96)
      	at org.openjdk.jmc.flightrecorder.serializers.json.IItemCollectionJsonSerializer.toJsonString(IItemCollectionJsonSerializer.java:66)
      	at org.openjdk.jmc.flightrecorder.heatmap.views.HeatmapView$ModelRebuildRunnable.run(HeatmapView.java:104)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
      	at java.base/java.lang.Thread.run(Thread.java:833)
      Exception in thread "HeatmapCalculation-0" java.lang.OutOfMemoryError: Java heap space
      Exception in thread "HeatmapCalculation-4" java.lang.OutOfMemoryError: Java heap space
      Exception in thread "HeatmapCalculation-2" java.lang.OutOfMemoryError: Java heap space
      

       

            vpurnam Virag Purnam
            bbanathur Bipin Banathur
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: