Bug 573633 - [GTK3] Tree.setImage() leaks native memory
Summary: [GTK3] Tree.setImage() leaks native memory
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 4.20   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 4.21 M1   Edit
Assignee: Simeon Andreev CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-05-19 06:50 EDT by Simeon Andreev CLA
Modified: 2021-06-18 04:55 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Simeon Andreev CLA 2021-05-19 06:50:34 EDT
To reproduce, run the following snippet with valgrind or jemalloc (slightly modified version of this SWT example: http://www.java2s.com/Tutorial/Java/0280__SWT/AddIcontoTreeItem.htm):

  public static void main(String[] args) {
    Display display = new Display();
    final Image image = display.getSystemImage(SWT.ICON_INFORMATION);
    Shell shell = new Shell(display);
    shell.setText("Test Tree leak based on SWT example: Images on the right side of the TreeItem");
    shell.setLayout(new FillLayout());
    Tree tree = new Tree(shell, SWT.MULTI | SWT.FULL_SELECTION);
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);
    int columnCount = 4;
    for (int i = 0; i < columnCount; i++) {
      TreeColumn column = new TreeColumn(tree, SWT.NONE);
      column.setText("Column " + i);
    }
    List<TreeItem> items = new ArrayList<>();
    int itemCount = 3;
    for (int i = 0; i < itemCount; i++) {
      TreeItem item1 = new TreeItem(tree, SWT.NONE);
      item1.setText("item " + i);
      for (int c = 1; c < columnCount; c++) {
        item1.setText(c, "item [" + i + "-" + c + "]");
        item1.setImage(c, image);
      }
      items.add(item1);
    }

    for (int i = 0; i < columnCount; i++) {
      tree.getColumn(i).pack();
    }
    shell.setSize(500, 200);
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
    if (image != null)
      image.dispose();
    display.dispose();
  }

jemalloc reports the leak as:

[92160 bytes leaked]
je_prof_backtrace (/home/sandreev/git/misc/jemalloc/src/prof.c:636 (discriminator 2))
je_malloc_default (/home/sandreev/git/misc/jemalloc/src/jemalloc.c:2289)
g_try_malloc (??:?)
gdk_pixbuf_new (/usr/src/debug/gdk-pixbuf-2.36.5/gdk-pixbuf/gdk-pixbuf.c:464)
Java_org_eclipse_swt_internal_gtk_GDK_gdk_1pixbuf_1new (??:?)
?? (??:0)

valgrind reports the leak as:

==87079== 83,736 (792 direct, 82,944 indirect) bytes in 9 blocks are definitely lost in loss record 15 of 13,782
==87079==    at 0x4C2B017: malloc (vg_replace_malloc.c:380)
==87079==    by 0x2A41D68D: g_malloc (in /usr/lib64/libglib-2.0.so.0.5600.1)
==87079==    by 0x2A434C8D: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.5600.1)
==87079==    by 0x2A4351ED: g_slice_alloc0 (in /usr/lib64/libglib-2.0.so.0.5600.1)
==87079==    by 0x2A1AD466: g_type_create_instance (in /usr/lib64/libgobject-2.0.so.0.5600.1)
==87079==    by 0x2A1911FC: ??? (in /usr/lib64/libgobject-2.0.so.0.5600.1)
==87079==    by 0x2A193120: g_object_new_valist (in /usr/lib64/libgobject-2.0.so.0.5600.1)
==87079==    by 0x2A193468: g_object_new (in /usr/lib64/libgobject-2.0.so.0.5600.1)
==87079==    by 0x28BC8CBB: gdk_pixbuf_new_from_data (gdk-pixbuf-data.c:70)
==87079==    by 0x28BC62DB: gdk_pixbuf_new (gdk-pixbuf.c:468)
==87079==    by 0x26ADCC55: Java_org_eclipse_swt_internal_gtk_GDK_gdk_1pixbuf_1new (in /home/sandreev/git/eclipse/eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.x86_64/libswt-pi3-gtk-4944r26.so)
==87079==    by 0x1140670F: ???
==87079==    by 0x11400A4F: ???
==87079==    by 0x11400A4F: ???
==87079==    by 0x11400F72: ???
==87079==    by 0x113F7BC8: ???
==87079==    by 0x66FE052: JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, Thread*) (in /usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64/lib/server/libjvm.so)
==87079==    by 0x676910C: jni_invoke_static(JNIEnv_*, JavaValue*, _jobject*, JNICallType, _jmethodID*, JNI_ArgumentPusher*, Thread*) [clone .isra.165] (in /usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64/lib/server/libjvm.so)
==87079==    by 0x676CF92: jni_CallStaticVoidMethod (in /usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64/lib/server/libjvm.so)
==87079==    by 0x52723DE: JavaMain (in /usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64/lib/jli/libjli.so)
==87079==    by 0x5058E24: start_thread (pthread_create.c:308)
==87079==    by 0x577A34C: clone (clone.S:113)

Increasing the number of tree items (e.g. to match the original SWT example), results in a bigger leak:

    for (int i = 0; i < itemCount; i++) {
      TreeItem item1 = new TreeItem(tree, SWT.NONE);
      item1.setText("item " + i);
      for (int c = 1; c < columnCount; c++) {
        item1.setText(c, "item [" + i + "-" + c + "]");
        item1.setImage(c, image);
      }
      items.add(item1);
      for (int j = 0; j < itemCount; j++) {
        TreeItem item2 = new TreeItem(item1, SWT.NONE);
        item2.setText("item [" + i + " " + j + "]");
        for (int c = 1; c < columnCount; c++) {
          item2.setText(c, "item [" + i + " " + j + "-" + c + "]");
          item2.setImage(c, image);
        }
        items.add(item2);
        for (int k = 0; k < itemCount; k++) {
          TreeItem item3 = new TreeItem(item2, SWT.NONE);
          item3.setText("item [" + i + " " + j + " " + k + "]");
          for (int c = 1; c < columnCount; c++) {
            item3.setText(c, "item [" + i + " " + j + " " + k + "-" + c + "]");
            item3.setImage(c, image);
          }
          items.add(item3);
        }
      }
    }

[1198080 bytes leaked]
je_prof_backtrace (/home/sandreev/git/misc/jemalloc/src/prof.c:636 (discriminator 2))
je_malloc_default (/home/sandreev/git/misc/jemalloc/src/jemalloc.c:2289)
g_try_malloc (??:?)
gdk_pixbuf_new (/usr/src/debug/gdk-pixbuf-2.36.5/gdk-pixbuf/gdk-pixbuf.c:464)
Java_org_eclipse_swt_internal_gtk_GDK_gdk_1pixbuf_1new (??:?)
?? (??:0)

No leak seems to be reported if I remove the following lines:

diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java
index 245332241a..0f1054ce1e 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java     
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java     
@@ -1525,8 +1525,8 @@ public void setImage(int index, Image image) {
                if (imageIndex == -1) {
                        imageIndex = imageList.add(image);
                }
-               surface = imageList.getSurface(imageIndex);
-               pixbuf = ImageList.createPixbuf(surface);
+//             surface = imageList.getSurface(imageIndex);
+//             pixbuf = ImageList.createPixbuf(surface);
        }
 
        int modelIndex = parent.columnCount == 0 ? Tree.FIRST_COLUMN : parent.columns [index].modelIndex;
@@ -1582,8 +1582,8 @@ public void setImage(int index, Image image) {
                }
        }
 
-       GTK.gtk_tree_store_set(parent.modelHandle, handle, modelIndex + Tree.CELL_PIXBUF, pixbuf, -1);
-       GTK.gtk_tree_store_set(parent.modelHandle, handle, modelIndex + Tree.CELL_SURFACE, surface, -1);
+//     GTK.gtk_tree_store_set(parent.modelHandle, handle, modelIndex + Tree.CELL_PIXBUF, pixbuf, -1);
+//     GTK.gtk_tree_store_set(parent.modelHandle, handle, modelIndex + Tree.CELL_SURFACE, surface, -1);
        cached = true;
        updated = true;
 }


So likely GTK+ is not freeing (possibly *no longer* freeing, after some GTK3 version change or GTK2 to GTK3 move) the pixbuf handles.
Comment 1 Simeon Andreev CLA 2021-05-19 06:51:39 EDT
Also I can create and dispose TreeItem elements with images (the same image, as in the snippet from the description) in a loop and the leak grows.
Comment 2 Simeon Andreev CLA 2021-05-19 07:16:01 EDT
This seem to make no difference for the snippet in the description and its leak, but might be another problem:

diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/internal/ImageList.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/internal/ImageList.java
index dd430e9152..205cb1daa6 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/internal/ImageList.java   
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/internal/ImageList.java   
@@ -125,7 +125,9 @@ public static long createPixbuf(long surface) {
                double sy[] = new double[1];
                Cairo.cairo_surface_get_device_scale(surface, sx, sy);
                if (sx[0] > 1 && sy[0] > 1){
+                       long oldPixbuf = pixbuf;
                        pixbuf = GDK.gdk_pixbuf_scale_simple(pixbuf, width/(int)sx[0], height/(int)sy[0], GDK.GDK_INTERP_BILINEAR);
+                       OS.g_object_unref(oldPixbuf);
                }
        }
        return pixbuf;

Looking at the documentation of gdk_pixbuf_scale_sample(), a copy is created so I assume the original must be freed at that code location (I also assume the auto-scaling code doesn't run in my environment at all; I don't use DPI scaling):

https://developer.gnome.org/gdk-pixbuf/stable/gdk-pixbuf-Scaling.html#gdk-pixbuf-scale-simple

> Create a new GdkPixbuf containing a copy of src scaled to dest_width x dest_height . Leaves src unaffected.

So I guess the pixbuf is not freed by GTK+ itself and that is the leak.
Comment 3 Alexandr Miloslavskiy CLA 2021-05-20 16:18:17 EDT
A copy is created, but the original seems to be released with 'OS.g_object_unref(oldPixbuf)', is that correct?

I have a feeling that this is resolved with a patch in Bug 573611 that removes the extra 'cairo_surface_reference()'.
Comment 4 Simeon Andreev CLA 2021-05-21 02:42:51 EDT
(In reply to Alexandr Miloslavskiy from comment #3)
> A copy is created, but the original seems to be released with
> 'OS.g_object_unref(oldPixbuf)', is that correct?
> 
> I have a feeling that this is resolved with a patch in Bug 573611 that
> removes the extra 'cairo_surface_reference()'.

The leak is still present with the change for bug 573611: https://git.eclipse.org/r/c/platform/eclipse.platform.swt/+/180783

I was testing with changes to ensure the leak for bug 573611 is gone, prior to creating this ticket. Sorry for not mentioning this in the description.
Comment 5 Simeon Andreev CLA 2021-05-21 04:41:48 EDT
With this change, I no longer see the leak from the description:

diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java
index d9c34f934f..2ab589d4ee 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java     
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TreeItem.java     
@@ -14,6 +14,8 @@
 package org.eclipse.swt.widgets;
 
 
+import java.util.*;
+
 import org.eclipse.swt.*;
 import org.eclipse.swt.graphics.*;
 import org.eclipse.swt.internal.*;
@@ -46,6 +48,8 @@ public class TreeItem extends Item {
        boolean cached, grayed, isExpanded, updated, settingData;
        static final int EXPANDER_EXTRA_PADDING = 4;
 
+       private final java.util.List<Long> pixbufs = new ArrayList<>();
+
 /**
  * Constructs <code>TreeItem</code> and <em>inserts</em> it into <code>Tree</code>.
  * Item is inserted as last direct child of the tree.
@@ -1073,6 +1077,12 @@ void releaseHandle () {
 
 @Override
 void releaseWidget () {
+       for (Long l : pixbufs) {
+               long pixbuf = l.longValue();
+               if (pixbuf != 0) {
+                       OS.g_object_unref(pixbuf);
+               }
+       }
        super.releaseWidget ();
        font = null;
        cellFont = null;
@@ -1522,6 +1532,7 @@ public void setImage(int index, Image image) {
                }
                surface = imageList.getSurface(imageIndex);
                pixbuf = ImageList.createPixbuf(surface);
+               pixbufs.add(Long.valueOf(pixbuf));
        }
 
        int modelIndex = parent.columnCount == 0 ? Tree.FIRST_COLUMN : parent.columns [index].modelIndex;


I don't know how to write this "gracefully" though. I tried asking the GTK+ tree model for the pixbuf handle on widget release, that doesn't seem to work (possibly the tree model is already changed at that point).
Comment 6 Simeon Andreev CLA 2021-05-21 05:37:28 EDT
(In reply to Alexandr Miloslavskiy from comment #3)
> A copy is created, but the original seems to be released with
> 'OS.g_object_unref(oldPixbuf)', is that correct?
> 
> I have a feeling that this is resolved with a patch in Bug 573611 that
> removes the extra 'cairo_surface_reference()'.

Ah sorry, I see you refer to comment 3. No, this is also not dealt with by bug 573611. The call to "OS.g_object_unref(oldPixbuf)" is actually something I've added, my comment lists a diff and not how the code actually is in SWT master.

Or did I misunderstand you (again)?
Comment 7 Eclipse Genie CLA 2021-05-21 05:48:02 EDT
New Gerrit change created: https://git.eclipse.org/r/c/platform/eclipse.platform.swt/+/180858
Comment 8 Alexandr Miloslavskiy CLA 2021-05-23 13:00:35 EDT
Sorry, I was confused and didn't notice it was a patch.
Comment 9 Simeon Andreev CLA 2021-05-28 03:26:28 EDT
After applying all patches we have done so far to fix native memory leak, our tests run into crashes. The crashes should be coming with this change, I'm checking whether the problem is downporting to Eclipse 4.15 (we are still on Eclipse 4.15), or the problem is actually in the change here.

Crashes I find are:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fffa49c196d, pid=82170, tid=82171
#
# JRE version: OpenJDK Runtime Environment 18.9 (11.0.11+9) (build 11.0.11+9-LTS)
# Java VM: OpenJDK 64-Bit Server VM 18.9 (11.0.11+9-LTS, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [libgobject-2.0.so.0+0x3296d]  g_type_check_instance_is_fundamentally_a+0xd
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e %P %I %h" (or dumping to /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/workspace/com.advantest.itee.execution.tests/core.82170)
#
# If you would like to submit a bug report, please visit:
#   https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%207&component=java-11-openjdk
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  S U M M A R Y ------------

Command Line: -Dosgi.dataAreaRequiresExplicitInit=true -Xmx2048m --add-modules=ALL-SYSTEM -D93k.eclipseid=/93k_workspace -DXOC_SYSTEM=/workspaces/socbm775/sandreev/ws-dev-andreev-4/vobs/zenith/workspace/system -D93k.isOnline=false -Xmx12G -Xms4G -Xss5m -XX:ReservedCodeCacheSize=256m -XX:GCTimeRatio=12 -DmaxCompiledUnitsAtOnce=0 -Dxtext.qn.interning=true -Dxtext.skipSecondaryTypes=true -Dosgi.bundlefile.limit=100 -Declipse.log.size.max=20000 -Declipse.log.backup.max=50 -Dorg.eclipse.swt.internal.gtk.noThemingFixes -Dorg.eclipse.core.resources.disable_advanced_recursive_link_checks -Dorg.eclipse.wst.validation.ui.disable.validation.context.menu=true -Dfile.encoding=UTF8 -Dorg.eclipse.tips.startup.default=background -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true -Dosgi.requiredJavaVersion=11 --add-modules=ALL-SYSTEM -Dlog4jloc=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/COMPONENT/logs/log4j/log4jlog.txt -javaagent:/opt/hp93000rt/el7/x86_64/jacoco-0.7.x/0.8.5/lib/jacocoagent.jar=destfile=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/COMPONENT/reports/coverage/jacoco.exec -Xcheck:jni -XX:ErrorFile=/tmp/sandreev_ws-dev-andreev-4//eclipse_vm_crash_%p.log /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar -os linux -ws gtk -arch x86_64 -launcher /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest/eclipse -name Eclipse --launcher.library /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.1100.v20190907-0426/eclipse_1801.so -startup /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar --launcher.appendVmargs -exitdata 334280ea -data /tmp/sandreev_ws-dev-andreev-4/ -showLocation -product com.verigy.itee.ui.ewcProduct -application com.verigy.itee.testframework.ewc_test_framework -vm /usr/lib/jvm/java-11/bin/java -vmargs -Dosgi.dataAreaRequiresExplicitInit=true -Xmx2048m --add-modules=ALL-SYSTEM -D93k.eclipseid=/93k_workspace -DXOC_SYSTEM=/workspaces/socbm775/sandreev/ws-dev-andreev-4/vobs/zenith/workspace/system -D93k.isOnline=false -Xmx12G -Xms4G -Xss5m -XX:ReservedCodeCacheSize=256m -XX:GCTimeRatio=12 -DmaxCompiledUnitsAtOnce=0 -Dxtext.qn.interning=true -Dxtext.skipSecondaryTypes=true -Dosgi.bundlefile.limit=100 -Declipse.log.size.max=20000 -Declipse.log.backup.max=50 -Dorg.eclipse.swt.internal.gtk.noThemingFixes -Dorg.eclipse.core.resources.disable_advanced_recursive_link_checks -Dorg.eclipse.wst.validation.ui.disable.validation.context.menu=true -Dfile.encoding=UTF8 -Dorg.eclipse.tips.startup.default=background -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true -Dosgi.requiredJavaVersion=11 --add-modules=ALL-SYSTEM -Dlog4jloc=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/COMPONENT/logs/log4j/log4jlog.txt -javaagent:/opt/hp93000rt/el7/x86_64/jacoco-0.7.x/0.8.5/lib/jacocoagent.jar=destfile=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/COMPONENT/reports/coverage/jacoco.exec -Xcheck:jni -XX:ErrorFile=/tmp/sandreev_ws-dev-andreev-4//eclipse_vm_crash_%p.log -jar /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar

Host: Intel(R) Xeon(R) W-2145 CPU @ 3.70GHz, 16 cores, 125G, Red Hat Enterprise Linux Workstation release 7.4 (Maipo)
Time: Fri May 28 01:39:44 2021 CEST elapsed time: 19.607165 seconds (0d 0h 0m 19s)

---------------  T H R E A D  ---------------

Current thread (0x00007ffff0019800):  JavaThread "main" [_thread_in_native, id=82171, stack(0x00007ffff4f28000,0x00007ffff5429000)]

Stack: [0x00007ffff4f28000,0x00007ffff5429000],  sp=0x00007ffff5424178,  free space=5104k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libgobject-2.0.so.0+0x3296d]  g_type_check_instance_is_fundamentally_a+0xd

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 8988  org.eclipse.swt.internal.gtk.OS.g_object_unref(J)V (0 bytes) @ 0x00007fffe03d7211 [0x00007fffe03d71c0+0x0000000000000051]
j  org.eclipse.swt.internal.ImageList.dispose()V+52
j  org.eclipse.swt.widgets.Tree.releaseWidget()V+118
J 16889 c1 org.eclipse.swt.widgets.Widget.release(Z)V (187 bytes) @ 0x00007fffd8c9bd6c [0x00007fffd8c9b500+0x000000000000086c]
j  org.eclipse.swt.widgets.Control.release(Z)V+190
j  org.eclipse.swt.widgets.Composite.releaseChildren(Z)V+73
J 16889 c1 org.eclipse.swt.widgets.Widget.release(Z)V (187 bytes) @ 0x00007fffd8c9b95c [0x00007fffd8c9b500+0x000000000000045c]
j  org.eclipse.swt.widgets.Control.release(Z)V+190
j  org.eclipse.swt.widgets.Composite.releaseChildren(Z)V+73
J 16889 c1 org.eclipse.swt.widgets.Widget.release(Z)V (187 bytes) @ 0x00007fffd8c9b95c [0x00007fffd8c9b500+0x000000000000045c]
j  org.eclipse.swt.widgets.Control.release(Z)V+190
j  org.eclipse.swt.widgets.Composite.releaseChildren(Z)V+73
J 16889 c1 org.eclipse.swt.widgets.Widget.release(Z)V (187 bytes) @ 0x00007fffd8c9b95c [0x00007fffd8c9b500+0x000000000000045c]
j  org.eclipse.swt.widgets.Control.release(Z)V+190
j  org.eclipse.swt.widgets.Widget.dispose()V+45
j  org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.disposeWidget(Lorg/eclipse/e4/ui/model/application/ui/MUIElement;)V+97


#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fff5a84396d, pid=112711, tid=112712
#
# JRE version: OpenJDK Runtime Environment 18.9 (11.0.11+9) (build 11.0.11+9-LTS)
# Java VM: OpenJDK 64-Bit Server VM 18.9 (11.0.11+9-LTS, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [libgobject-2.0.so.0+0x3296d]  g_type_check_instance_is_fundamentally_a+0xd
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e %P %I %h" (or dumping to /tmp/sandreev_ws-dev-andreev-4_devices/74act299/core.112711)
#
# If you would like to submit a bug report, please visit:
#   https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%207&component=java-11-openjdk
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  S U M M A R Y ------------

Command Line: -Dosgi.dataAreaRequiresExplicitInit=true -Xmx2048m --add-modules=ALL-SYSTEM -D93k.eclipseid=/93k_workspace -DXOC_SYSTEM=/workspaces/socbm775/sandreev/ws-dev-andreev-4/vobs/zenith/workspace/system -D93k.isOnline=false -Xmx31G -Xms4G -Xss5m -XX:ReservedCodeCacheSize=256m -XX:GCTimeRatio=12 -DmaxCompiledUnitsAtOnce=0 -Dxtext.qn.interning=true -Dxtext.skipSecondaryTypes=true -Dosgi.bundlefile.limit=100 -Declipse.log.size.max=20000 -Declipse.log.backup.max=50 -Dorg.eclipse.swt.internal.gtk.noThemingFixes -Dorg.eclipse.core.resources.disable_advanced_recursive_link_checks -Dorg.eclipse.wst.validation.ui.disable.validation.context.menu=true -Dfile.encoding=UTF8 -Dorg.eclipse.tips.startup.default=background -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true -Dosgi.requiredJavaVersion=11 --add-modules=ALL-SYSTEM -Dlog4jloc=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/INTEGRATION/logs/log4j/log4jlog.txt -javaagent:/opt/hp93000rt/el7/x86_64/jacoco-0.7.x/0.8.5/lib/jacocoagent.jar=destfile=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/INTEGRATION/reports/coverage/jacoco.exec -Xcheck:jni -Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true -Dorg.eclipse.swt.internal.gtk.enableStrictChecks -XX:ErrorFile=/tmp/sandreev_ws-dev-andreev-4//eclipse_vm_crash_%p.log /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar -os linux -ws gtk -arch x86_64 -launcher /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest/eclipse -name Eclipse --launcher.library /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.1100.v20190907-0426/eclipse_1801.so -startup /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar --launcher.appendVmargs -exitdata 32aa80ff -showLocation -product com.verigy.itee.ui.ewcProduct -application com.verigy.itee.testframework.ewc_test_framework -configuration /opt/hp93000/soc64_IworkspacesIsocbm775IsandreevIws-dev-andreev-4/segments/eclipse/eclipseForTest/configuration -data /tmp/sandreev_ws-dev-andreev-4/ -clean -vm /usr/lib/jvm/java-11/bin/java -vmargs -Dosgi.dataAreaRequiresExplicitInit=true -Xmx2048m --add-modules=ALL-SYSTEM -D93k.eclipseid=/93k_workspace -DXOC_SYSTEM=/workspaces/socbm775/sandreev/ws-dev-andreev-4/vobs/zenith/workspace/system -D93k.isOnline=false -Xmx31G -Xms4G -Xss5m -XX:ReservedCodeCacheSize=256m -XX:GCTimeRatio=12 -DmaxCompiledUnitsAtOnce=0 -Dxtext.qn.interning=true -Dxtext.skipSecondaryTypes=true -Dosgi.bundlefile.limit=100 -Declipse.log.size.max=20000 -Declipse.log.backup.max=50 -Dorg.eclipse.swt.internal.gtk.noThemingFixes -Dorg.eclipse.core.resources.disable_advanced_recursive_link_checks -Dorg.eclipse.wst.validation.ui.disable.validation.context.menu=true -Dfile.encoding=UTF8 -Dorg.eclipse.tips.startup.default=background -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true -Dosgi.requiredJavaVersion=11 --add-modules=ALL-SYSTEM -Dlog4jloc=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/INTEGRATION/logs/log4j/log4jlog.txt -javaagent:/opt/hp93000rt/el7/x86_64/jacoco-0.7.x/0.8.5/lib/jacocoagent.jar=destfile=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/INTEGRATION/reports/coverage/jacoco.exec -Xcheck:jni -Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true -Dorg.eclipse.swt.internal.gtk.enableStrictChecks -XX:ErrorFile=/tmp/sandreev_ws-dev-andreev-4//eclipse_vm_crash_%p.log -jar /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar

Host: Intel(R) Xeon(R) W-2145 CPU @ 3.70GHz, 16 cores, 125G, Red Hat Enterprise Linux Workstation release 7.4 (Maipo)
Time: Thu May 27 18:27:19 2021 CEST elapsed time: 58.591159 seconds (0d 0h 0m 58s)

---------------  T H R E A D  ---------------

Current thread (0x00007ffff0019800):  JavaThread "main" [_thread_in_native, id=112712, stack(0x00007ffff4f28000,0x00007ffff5429000)]

Stack: [0x00007ffff4f28000,0x00007ffff5429000],  sp=0x00007ffff5423cb8,  free space=5103k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libgobject-2.0.so.0+0x3296d]  g_type_check_instance_is_fundamentally_a+0xd

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 31350  org.eclipse.swt.internal.gtk.GTK.gtk_tree_model_get(JJI[JI)V (0 bytes) @ 0x00007fffe04fadb7 [0x00007fffe04fad40+0x0000000000000077]
j  org.eclipse.swt.widgets.TreeItem._getImage(I)Lorg/eclipse/swt/graphics/Image;+114
j  org.eclipse.swt.widgets.TreeItem.getImage(I)Lorg/eclipse/swt/graphics/Image;+48
j  org.eclipse.debug.internal.ui.viewers.model.InternalTreeModelViewer.getElementLabel(Lorg/eclipse/jface/viewers/TreePath;Ljava/lang/String;)Lorg/eclipse/jface/viewers/ViewerLabel;+196
j  org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer.getElementLabel(Lorg/eclipse/jface/viewers/TreePath;Ljava/lang/String;)Lorg/eclipse/jface/viewers/ViewerLabel;+7
j  org.eclipse.debug.internal.ui.views.launch.LaunchViewBreadcrumb$LabelProvider.updateLabel(Lorg/eclipse/jface/viewers/ViewerLabel;Lorg/eclipse/jface/viewers/TreePath;)V+53
j  org.eclipse.debug.internal.ui.viewers.breadcrumb.BreadcrumbViewer.refreshItem(Lorg/eclipse/debug/internal/ui/viewers/breadcrumb/BreadcrumbItem;)Z+59
j  org.eclipse.debug.internal.ui.viewers.breadcrumb.BreadcrumbViewer.internalRefresh(Ljava/lang/Object;)V+121
j  org.eclipse.jface.viewers.StructuredViewer.lambda$2(Ljava/lang/Object;)V+6
j  org.eclipse.jface.viewers.StructuredViewer$$Lambda$478.run()V+8
j  org.eclipse.jface.viewers.StructuredViewer.preservingSelection(Ljava/lang/Runnable;Z)V+50
j  org.eclipse.jface.viewers.StructuredViewer.preservingSelection(Ljava/lang/Runnable;)V+7
j  org.eclipse.jface.viewers.StructuredViewer.refresh(Ljava/lang/Object;)V+12
j  org.eclipse.jface.viewers.StructuredViewer.refresh()V+9
j  org.eclipse.debug.internal.ui.viewers.breadcrumb.AbstractBreadcrumb.refresh()V+34
j  org.eclipse.debug.internal.ui.views.launch.LaunchViewBreadcrumb.access$5(Lorg/eclipse/debug/internal/ui/views/launch/LaunchViewBreadcrumb;)V+5
j  org.eclipse.debug.internal.ui.views.launch.LaunchViewBreadcrumb$4.runInUIThread(Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/core/runtime/IStatus;+8
j  org.eclipse.ui.progress.UIJob.lambda$0(Lorg/eclipse/core/runtime/IProgressMonitor;)V+63
j  org.eclipse.ui.progress.UIJob$$Lambda$622.run()V+8


#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fff5a84396d, pid=112711, tid=112712
#
# JRE version: OpenJDK Runtime Environment 18.9 (11.0.11+9) (build 11.0.11+9-LTS)
# Java VM: OpenJDK 64-Bit Server VM 18.9 (11.0.11+9-LTS, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [libgobject-2.0.so.0+0x3296d]  g_type_check_instance_is_fundamentally_a+0xd
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e %P %I %h" (or dumping to /tmp/sandreev_ws-dev-andreev-4_devices/74act299/core.112711)
#
# If you would like to submit a bug report, please visit:
#   https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%207&component=java-11-openjdk
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  S U M M A R Y ------------

Command Line: -Dosgi.dataAreaRequiresExplicitInit=true -Xmx2048m --add-modules=ALL-SYSTEM -D93k.eclipseid=/93k_workspace -DXOC_SYSTEM=/workspaces/socbm775/sandreev/ws-dev-andreev-4/vobs/zenith/workspace/system -D93k.isOnline=false -Xmx31G -Xms4G -Xss5m -XX:ReservedCodeCacheSize=256m -XX:GCTimeRatio=12 -DmaxCompiledUnitsAtOnce=0 -Dxtext.qn.interning=true -Dxtext.skipSecondaryTypes=true -Dosgi.bundlefile.limit=100 -Declipse.log.size.max=20000 -Declipse.log.backup.max=50 -Dorg.eclipse.swt.internal.gtk.noThemingFixes -Dorg.eclipse.core.resources.disable_advanced_recursive_link_checks -Dorg.eclipse.wst.validation.ui.disable.validation.context.menu=true -Dfile.encoding=UTF8 -Dorg.eclipse.tips.startup.default=background -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true -Dosgi.requiredJavaVersion=11 --add-modules=ALL-SYSTEM -Dlog4jloc=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/INTEGRATION/logs/log4j/log4jlog.txt -javaagent:/opt/hp93000rt/el7/x86_64/jacoco-0.7.x/0.8.5/lib/jacocoagent.jar=destfile=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/INTEGRATION/reports/coverage/jacoco.exec -Xcheck:jni -Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true -Dorg.eclipse.swt.internal.gtk.enableStrictChecks -XX:ErrorFile=/tmp/sandreev_ws-dev-andreev-4//eclipse_vm_crash_%p.log /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar -os linux -ws gtk -arch x86_64 -launcher /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest/eclipse -name Eclipse --launcher.library /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.1100.v20190907-0426/eclipse_1801.so -startup /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar --launcher.appendVmargs -exitdata 32aa80ff -showLocation -product com.verigy.itee.ui.ewcProduct -application com.verigy.itee.testframework.ewc_test_framework -configuration /opt/hp93000/soc64_IworkspacesIsocbm775IsandreevIws-dev-andreev-4/segments/eclipse/eclipseForTest/configuration -data /tmp/sandreev_ws-dev-andreev-4/ -clean -vm /usr/lib/jvm/java-11/bin/java -vmargs -Dosgi.dataAreaRequiresExplicitInit=true -Xmx2048m --add-modules=ALL-SYSTEM -D93k.eclipseid=/93k_workspace -DXOC_SYSTEM=/workspaces/socbm775/sandreev/ws-dev-andreev-4/vobs/zenith/workspace/system -D93k.isOnline=false -Xmx31G -Xms4G -Xss5m -XX:ReservedCodeCacheSize=256m -XX:GCTimeRatio=12 -DmaxCompiledUnitsAtOnce=0 -Dxtext.qn.interning=true -Dxtext.skipSecondaryTypes=true -Dosgi.bundlefile.limit=100 -Declipse.log.size.max=20000 -Declipse.log.backup.max=50 -Dorg.eclipse.swt.internal.gtk.noThemingFixes -Dorg.eclipse.core.resources.disable_advanced_recursive_link_checks -Dorg.eclipse.wst.validation.ui.disable.validation.context.menu=true -Dfile.encoding=UTF8 -Dorg.eclipse.tips.startup.default=background -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true -Dosgi.requiredJavaVersion=11 --add-modules=ALL-SYSTEM -Dlog4jloc=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/INTEGRATION/logs/log4j/log4jlog.txt -javaagent:/opt/hp93000rt/el7/x86_64/jacoco-0.7.x/0.8.5/lib/jacocoagent.jar=destfile=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/INTEGRATION/reports/coverage/jacoco.exec -Xcheck:jni -Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true -Dorg.eclipse.swt.internal.gtk.enableStrictChecks -XX:ErrorFile=/tmp/sandreev_ws-dev-andreev-4//eclipse_vm_crash_%p.log -jar /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar

Host: Intel(R) Xeon(R) W-2145 CPU @ 3.70GHz, 16 cores, 125G, Red Hat Enterprise Linux Workstation release 7.4 (Maipo)
Time: Thu May 27 18:27:19 2021 CEST elapsed time: 58.591159 seconds (0d 0h 0m 58s)

---------------  T H R E A D  ---------------

Current thread (0x00007ffff0019800):  JavaThread "main" [_thread_in_native, id=112712, stack(0x00007ffff4f28000,0x00007ffff5429000)]

Stack: [0x00007ffff4f28000,0x00007ffff5429000],  sp=0x00007ffff5423cb8,  free space=5103k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libgobject-2.0.so.0+0x3296d]  g_type_check_instance_is_fundamentally_a+0xd

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 31350  org.eclipse.swt.internal.gtk.GTK.gtk_tree_model_get(JJI[JI)V (0 bytes) @ 0x00007fffe04fadb7 [0x00007fffe04fad40+0x0000000000000077]
j  org.eclipse.swt.widgets.TreeItem._getImage(I)Lorg/eclipse/swt/graphics/Image;+114
j  org.eclipse.swt.widgets.TreeItem.getImage(I)Lorg/eclipse/swt/graphics/Image;+48
j  org.eclipse.debug.internal.ui.viewers.model.InternalTreeModelViewer.getElementLabel(Lorg/eclipse/jface/viewers/TreePath;Ljava/lang/String;)Lorg/eclipse/jface/viewers/ViewerLabel;+196
j  org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer.getElementLabel(Lorg/eclipse/jface/viewers/TreePath;Ljava/lang/String;)Lorg/eclipse/jface/viewers/ViewerLabel;+7
j  org.eclipse.debug.internal.ui.views.launch.LaunchViewBreadcrumb$LabelProvider.updateLabel(Lorg/eclipse/jface/viewers/ViewerLabel;Lorg/eclipse/jface/viewers/TreePath;)V+53
j  org.eclipse.debug.internal.ui.viewers.breadcrumb.BreadcrumbViewer.refreshItem(Lorg/eclipse/debug/internal/ui/viewers/breadcrumb/BreadcrumbItem;)Z+59
j  org.eclipse.debug.internal.ui.viewers.breadcrumb.BreadcrumbViewer.internalRefresh(Ljava/lang/Object;)V+121
j  org.eclipse.jface.viewers.StructuredViewer.lambda$2(Ljava/lang/Object;)V+6
j  org.eclipse.jface.viewers.StructuredViewer$$Lambda$478.run()V+8
j  org.eclipse.jface.viewers.StructuredViewer.preservingSelection(Ljava/lang/Runnable;Z)V+50
j  org.eclipse.jface.viewers.StructuredViewer.preservingSelection(Ljava/lang/Runnable;)V+7
j  org.eclipse.jface.viewers.StructuredViewer.refresh(Ljava/lang/Object;)V+12
j  org.eclipse.jface.viewers.StructuredViewer.refresh()V+9
j  org.eclipse.debug.internal.ui.viewers.breadcrumb.AbstractBreadcrumb.refresh()V+34
j  org.eclipse.debug.internal.ui.views.launch.LaunchViewBreadcrumb.access$5(Lorg/eclipse/debug/internal/ui/views/launch/LaunchViewBreadcrumb;)V+5



#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fff59d2896d, pid=28247, tid=28248
#
# JRE version: OpenJDK Runtime Environment 18.9 (11.0.11+9) (build 11.0.11+9-LTS)
# Java VM: OpenJDK 64-Bit Server VM 18.9 (11.0.11+9-LTS, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [libgobject-2.0.so.0+0x3296d]  g_type_check_instance_is_fundamentally_a+0xd
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e %P %I %h" (or dumping to /tmp/sandreev_ws-dev-andreev-4_devices/74act299/core.28247)
#
# If you would like to submit a bug report, please visit:
#   https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%207&component=java-11-openjdk
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  S U M M A R Y ------------

Command Line: -Dosgi.dataAreaRequiresExplicitInit=true -Xmx2048m --add-modules=ALL-SYSTEM -D93k.eclipseid=/93k_workspace -DXOC_SYSTEM=/workspaces/socbm775/sandreev/ws-dev-andreev-4/vobs/zenith/workspace/system -D93k.isOnline=false -Xmx31G -Xms4G -Xss5m -XX:ReservedCodeCacheSize=256m -XX:GCTimeRatio=12 -DmaxCompiledUnitsAtOnce=0 -Dxtext.qn.interning=true -Dxtext.skipSecondaryTypes=true -Dosgi.bundlefile.limit=100 -Declipse.log.size.max=20000 -Declipse.log.backup.max=50 -Dorg.eclipse.swt.internal.gtk.noThemingFixes -Dorg.eclipse.core.resources.disable_advanced_recursive_link_checks -Dorg.eclipse.wst.validation.ui.disable.validation.context.menu=true -Dfile.encoding=UTF8 -Dorg.eclipse.tips.startup.default=background -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true -Dosgi.requiredJavaVersion=11 --add-modules=ALL-SYSTEM -Dlog4jloc=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/INTEGRATION/logs/log4j/log4jlog.txt -javaagent:/opt/hp93000rt/el7/x86_64/jacoco-0.7.x/0.8.5/lib/jacocoagent.jar=destfile=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/INTEGRATION/reports/coverage/jacoco.exec -Xcheck:jni -Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true -Dorg.eclipse.swt.internal.gtk.enableStrictChecks -XX:ErrorFile=/tmp/sandreev_ws-dev-andreev-4//eclipse_vm_crash_%p.log /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar -os linux -ws gtk -arch x86_64 -launcher /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest/eclipse -name Eclipse --launcher.library /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.1100.v20190907-0426/eclipse_1801.so -startup /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar --launcher.appendVmargs -exitdata 32b880ff -showLocation -product com.verigy.itee.ui.ewcProduct -application com.verigy.itee.testframework.ewc_test_framework -configuration /opt/hp93000/soc64_IworkspacesIsocbm775IsandreevIws-dev-andreev-4/segments/eclipse/eclipseForTest/configuration -data /tmp/sandreev_ws-dev-andreev-4/ -clean -vm /usr/lib/jvm/java-11/bin/java -vmargs -Dosgi.dataAreaRequiresExplicitInit=true -Xmx2048m --add-modules=ALL-SYSTEM -D93k.eclipseid=/93k_workspace -DXOC_SYSTEM=/workspaces/socbm775/sandreev/ws-dev-andreev-4/vobs/zenith/workspace/system -D93k.isOnline=false -Xmx31G -Xms4G -Xss5m -XX:ReservedCodeCacheSize=256m -XX:GCTimeRatio=12 -DmaxCompiledUnitsAtOnce=0 -Dxtext.qn.interning=true -Dxtext.skipSecondaryTypes=true -Dosgi.bundlefile.limit=100 -Declipse.log.size.max=20000 -Declipse.log.backup.max=50 -Dorg.eclipse.swt.internal.gtk.noThemingFixes -Dorg.eclipse.core.resources.disable_advanced_recursive_link_checks -Dorg.eclipse.wst.validation.ui.disable.validation.context.menu=true -Dfile.encoding=UTF8 -Dorg.eclipse.tips.startup.default=background -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true -Dosgi.requiredJavaVersion=11 --add-modules=ALL-SYSTEM -Dlog4jloc=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/INTEGRATION/logs/log4j/log4jlog.txt -javaagent:/opt/hp93000rt/el7/x86_64/jacoco-0.7.x/0.8.5/lib/jacocoagent.jar=destfile=/workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/93000/src/segments/eclipse/test_framework/test_results/INTEGRATION/reports/coverage/jacoco.exec -Xcheck:jni -Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=true -Dorg.eclipse.swt.internal.gtk.enableStrictChecks -XX:ErrorFile=/tmp/sandreev_ws-dev-andreev-4//eclipse_vm_crash_%p.log -jar /workspaces/socbm775/sandreev/ws-dev-andreev-4/opt/hp93000/soc/segments/eclipse/eclipseForTest//plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar

Host: Intel(R) Xeon(R) W-2145 CPU @ 3.70GHz, 16 cores, 125G, Red Hat Enterprise Linux Workstation release 7.4 (Maipo)
Time: Thu May 27 18:54:27 2021 CEST elapsed time: 32.610861 seconds (0d 0h 0m 32s)

---------------  T H R E A D  ---------------

Current thread (0x00007ffff0019800):  JavaThread "main" [_thread_in_native, id=28248, stack(0x00007ffff4f28000,0x00007ffff5429000)]

Stack: [0x00007ffff4f28000,0x00007ffff5429000],  sp=0x00007ffff5424038,  free space=5104k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libgobject-2.0.so.0+0x3296d]  g_type_check_instance_is_fundamentally_a+0xd

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 16778  org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(JZ)Z (0 bytes) @ 0x00007fffe0aa249c [0x00007fffe0aa2440+0x000000000000005c]
J 16863 c1 org.eclipse.swt.widgets.Display.readAndDispatch()Z (168 bytes) @ 0x00007fffd81e27cc [0x00007fffd81e2520+0x00000000000002ac]
Comment 10 Andrey Loskutov CLA 2021-05-28 03:45:31 EDT
(In reply to Simeon Andreev from comment #9)
> After applying all patches we have done so far to fix native memory leak,
> our tests run into crashes. The crashes should be coming with this change,
> I'm checking whether the problem is downporting to Eclipse 4.15 (we are
> still on Eclipse 4.15), or the problem is actually in the change here.

Note, I believe ImageList was heavily changed after 4.15, so our old 4.15 version might cause troubles.
Comment 11 Simeon Andreev CLA 2021-05-28 04:02:17 EDT
Reverting the change for this bug results in no crash. I did see the same leak in our 4.15 version, but I guess we'll need a different fix for 4.15.
Comment 12 Simeon Andreev CLA 2021-05-28 04:17:50 EDT
Applying the same change on our Eclipse 4.20 based branch, I see no crashes on first glance (I've ran only one of the tests, that ran into the crash).
Comment 13 Sravan Kumar Lakkimsetti CLA 2021-05-28 04:47:30 EDT
@Simeon,

The change here looks good. 

In 4.19 we have reimplemented ImageList. Removed most of the pixbuf usage. In gtk_tree structure we we not able to force usage cairo surface so we still have pixbuf used there. Ideally we should eliminate usage of pixbuf.

In case of 4.15 ImageList stores pixbufs. So you might see a different code path. You'll need to fix 4.15 release with separate patch.
Comment 14 Alexandr Miloslavskiy CLA 2021-05-30 13:17:05 EDT
Simeon, I understand that you're investigating and not expecting something from my side currently?
Comment 15 Simeon Andreev CLA 2021-05-30 13:37:42 EDT
(In reply to Alexandr Miloslavskiy from comment #14)
> Simeon, I understand that you're investigating and not expecting something
> from my side currently?

Correct. The problem I have is with 4.15 platform, its not related to the fix here.
Comment 17 Alexandr Miloslavskiy CLA 2021-06-17 11:45:08 EDT
This patch causes a 'GLib-GObject-CRITICAL' during one of
    TableItem.setImage(null)
    TreeItem.setImage(null)

The 'GLib-GObject-CRITICAL' itself is harmless, it merely hits a NULL pointer and early-returns without any lasting damage.

Still, this should be fixed, so that console is not polluted with errors.
Comment 18 Eclipse Genie CLA 2021-06-18 04:29:21 EDT
New Gerrit change created: https://git.eclipse.org/r/c/platform/eclipse.platform.swt/+/182159