GEF-based editors are crashing on latest GTK [message #1744109] |
Thu, 22 September 2016 11:31 |
|
Hi,
I want to bring this bug [1] to your attention. It has been submitted to platform/swt but after spending quite some time with it I think it is more an GEF issues.
To summarize the bug in short: GEF-based (and such also GMF-based) editors are crashing the Eclipse application with a GTK error:
Gtk:ERROR:/build/gtk+3.0-3.21.6/./gtk/gtkwidget.c:10232:gtk_widget_pop_verify_invariants: assertion failed: (widget->priv->verifying_invariants_count > 0)
I noticed that the editors are shown and also the content is drawn correctly. The crash only happens if you move the mouse over the editor or the editor's outline.
I tried to further track this down in order to identify the cause but sofar I was not successful in setting breakpoints at the right place. Has anybody an idea where I could start?
BTW a workaround is to disable GTK3 with SWT_GTK3=0.
BR,
Alois
[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=501542
|
|
|
|
Re: GEF-based editors are crashing on latest GTK [message #1744124 is a reply to message #1744121] |
Thu, 22 September 2016 13:43 |
|
The reason that all my basic Eclipse Neon (e.g., JDT, CDT, Modeling) is working as before (except this crazy warnings) and as soon as I start a GEF based editor Eclipse crashes. I think it is they way how GEF is using SWT. I just wanted to have some starting point where I can put a breakpoint and step on from that. However I'm somehow lost in the code. The best guess where I could start is the code that handles when the mouse enters the editor. If someone could point me to that place I can try to find my way and hopefully identify the component which is in the end the cause for the crash.
|
|
|
|
Re: GEF-based editors are crashing on latest GTK [message #1744890 is a reply to message #1744147] |
Sat, 01 October 2016 17:19 |
|
I've spent quite some time to find some causes. But didn't get far. The only thing a I found are the 6 functions which are calling the gtk_widget_pop_verify_invariants but nothing on the SWT side.
In the meantime Debian upgraded to 3.22. And I think with that the GTK people deactivated the assert. But now I get an stack overflow in eclipse. This happens as before when I enter with a mouse cursor into a GEF editor. PFA the error log copied for the AERI dialog. This this help us?
|
|
|
Re: GEF-based editors are crashing on latest GTK [message #1744912 is a reply to message #1744890] |
Sun, 02 October 2016 13:38 |
|
Hi,
when you have the callers of gtk_widget_pop_verify_invariants, then you can trace them further until you reach some function that is called by org.eclipse.swt.internal.gtk on the Java side.
The stack trace shows a very short cycle: realize() leads to a call to get_window(), which again calls realize()
at org.eclipse.swt.internal.gtk.OS._gtk_widget_realize(OS.java:-2)
at org.eclipse.swt.internal.gtk.OS.gtk_widget_realize(OS.java:14842)
at org.eclipse.swt.widgets.Widget.gtk_widget_get_window(Widget.java:1800)
at org.eclipse.swt.widgets.Composite.gtk_style_set(Composite.java:875)
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2012)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:5819)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5490)
at org.eclipse.swt.internal.gtk.OS._gtk_widget_realize(OS.java:-2)
It would probably be also nice to see the full stack trace to see where the cycle was entered. Anyway, I guess this is enough information for opening an SWT bug.
Best regards,
Matthias
|
|
|
|
Powered by
FUDForum. Page generated in 0.03194 seconds