'src/animations/oxygencomboboxdata.cpp:87:void Oxygen::ComboBoxData::setButton(GtkWidget*): "!_button._widget" assertion failed' crashes Eclipse Luna

Bug #1391531 reported by V字龍(Vdragon)
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Gtk2 Engines Oxygen
Fix Released
High
gtk2-engines-oxygen (Ubuntu)
Confirmed
High
Unassigned

Bug Description

Eclipse crashed after doing some work using Eclipse CDT from upstream website.

ProblemType: Bug
DistroRelease: Ubuntu 14.10
Package: gtk2-engines-oxygen 1.4.5-0ubuntu1
ProcVersionSignature: Ubuntu 3.16.0-24.32-generic 3.16.4
Uname: Linux 3.16.0-24-generic x86_64
ApportVersion: 2.14.7-0ubuntu8
Architecture: amd64
CurrentDesktop: KDE
Date: Tue Nov 11 22:10:22 2014
InstallationDate: Installed on 2014-11-10 (0 days ago)
InstallationMedia: Kubuntu 14.10 "Utopic Unicorn" - Release amd64 (20141022.1)
ProcEnviron:
 LANGUAGE=zh_TW:zh
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=zh_TW.UTF-8
 SHELL=/bin/bash
SourcePackage: gtk2-engines-oxygen
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
In , Jiri Popelka (jpopelka) wrote :

When I run 'eclipse -debug -console' and open one of the respective dialogs, Eclipse freezes and I can see the following in console:

java: /builddir/build/BUILD/oxygen-gtk2-1.4.5/src/animations/oxygencomboboxdata.cpp:87: void Oxygen::ComboBoxData::setButton(GtkWidget*): Assertion `!_button._widget' failed.

Reproducible: Always

Steps to Reproduce:
1. eclipse -debug -console
2. Project Explorer -> New -> C Project

Actual Results:
Eclipse freezes

Expected Results:
no problems

https://bugs.eclipse.org/bugs/show_bug.cgi?id=440660

Revision history for this message
In , Axel Mueller (aegges) wrote :

Bug was introduced in the 4.4.1 update. I can confirm on Kubuntu 14.04 (KDE 4.13.3, gtk-egine 1.4.5). Eclipse will crash immediately if you open any dialog in Eclipse (see above asertion).

Workaround: do not use the oxygen-gtk theme for GTK applications (you can change it in the KDE system settings)

Revision history for this message
In , Ruslan (b7-10110111) wrote :

I can't reproduce this bug on Ubuntu 12.04 with oxygen-gtk v1.4.5-52-g39ca053 (current git) and Eclipse 4.4.1 downloaded from eclipse.org.
What GTK2 version are you using? Mine is 2.24.10.

Revision history for this message
In , Axel Mueller (aegges) wrote :

(In reply to Ruslan Kabatsayev from comment #2)
> I can't reproduce this bug on Ubuntu 12.04 with oxygen-gtk
> v1.4.5-52-g39ca053 (current git) and Eclipse 4.4.1 downloaded from
> eclipse.org.
> What GTK2 version are you using? Mine is 2.24.10.
I am using gtk 2.24.23 on Ubuntu 14.04. gtk2-engines-oxygen (1.4.5-0ubuntu1).

Revision history for this message
In , Ruslan (b7-10110111) wrote :

*** Bug 339507 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Zombi (zombi) wrote :

I have the same problem, if I change the line with the failing assert in oxygencomboboxdata.cpp, to " if( _button._widget ) return" - then this crash disapears. I'm not sure, if it's a proper fix, but I haven't found any problem with it.

Revision history for this message
In , Ghislain-nadeau (ghislain-nadeau) wrote :

Same problem. I wonder if it's an Eclipse or KDE bug, everything was wonking fine a few days ago.
I just made a kubuntu update, and reinstalled eclipse, so i don't know which one is the culprit

Revision history for this message
In , Rudi-mail90 (rudi-mail90) wrote :
Download full text (5.0 KiB)

Always Reproducible using Eclipse 4.4.1.M20140925-0400 64-bit on Linux Mint 17 64-bit using Oxygen as GTK2 theme.

To reproduce, press Ctrl+H (search in files), Eclipse immediately crash with below output.

Console Output:

rudi@rudi:~ > eclipse_jee/eclipse
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
org.eclipse.m2e.logback.configuration: The org.eclipse.m2e.logback.configuration bundle was activated before the state location was initialized. Will retry after the state location is initialized.
org.eclipse.m2e.logback.configuration: Logback config file: /home/rudi/space_spring/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.5.0.20140606-0033.xml
org.eclipse.m2e.logback.configuration: Initializing logback
java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String
        at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26)
        at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189)
        at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144)
        at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107)
        at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62)
        at java.util.TimerThread.mainLoop(Timer.java:555)
        at java.util.TimerThread.run(Timer.java:505)
[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
2014-10-01 16:22:52.461:INFO::Logging to STDERR via org.mortbay.log.StdErrLog
16:22:52.777 [Worker-1] DEBUG JRebelPlugin - Starting plugin
java: /build/buildd/gtk2-engines-oxygen-1.4.5/src/animations/oxygencomboboxdata.cpp:87: void Oxygen::ComboBoxData::setButton(GtkWidget*): Assertion `!_button._widget' failed.

System Info:
gtk2-engines-oxygen package version 1.4.5-0ubuntu1
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
KDE 4.13.3

*** Date: Wednesday, October 1, 2014 at 4:29:09 PM Western Indonesia Time

*** Platform Details:

*** System properties:
applicationXMI=org.eclipse.ui.workbench/LegacyIDE.e4xmi
awt.toolkit=sun.awt.X11.XToolkit
com.atlassian.connector.eclipse.branding.ui.isOnlyJiraInstalled=false
eclipse.application=org.eclipse.ui.ide.workbench
eclipse.buildId=4.4.1.M20140925-0400
eclipse.commands=-os
linux
-ws
gtk
-arch
x86_64
-showsplash
/home/rudi/eclipse_jee//plugins/org.eclipse.platform_4.4.0.v20140925-0400/splash.bmp
-launcher
/home/rudi/eclipse_jee/eclipse
-name
Eclipse
--launcher.library
/home/rudi/eclipse_jee//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140603-1326/eclipse_1605.so
-startup
/home/rudi/eclipse_jee//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.appendVmargs
-exitdata
5030020
-product
org.eclipse.epp.pack...

Read more...

Revision history for this message
In , Rudi-mail90 (rudi-mail90) wrote :

BTW, although GTK2 theme was set to "Oxygen", my KDE Widget style is actually "QtCurve".

Workaround: System Settings > Application Appearance > GTK > Set GTK2 theme to "Redmond" or others (Clearlooks works too).

Revision history for this message
In , Hendy Irawan (ceefour) wrote :

Thanks Rudi for info :)

Revision history for this message
In , Hugo Pereira Da Costa (hugo-pereira) wrote :

People, please,
this is not a forum.
this is a bug report.
messages saying thanks to other messages bring no information
duplicated messages (such as workarounds) bring no information
In fact they tend to dilute the information relevant for actually investigating the issue.

Revision history for this message
In , Hugo Pereira Da Costa (hugo-pereira) wrote :

(In reply to Zsombor from comment #5)
> I have the same problem, if I change the line with the failing assert in
> oxygencomboboxdata.cpp, to " if( _button._widget ) return" - then this crash
> disapears. I'm not sure, if it's a proper fix, but I haven't found any
> problem with it.

Hi Zsombor,

The assertion failing means that something is likely broken upstream
(two gtk buttons are associated to the same combobox, which should not happen)

One could either "return" as you suggest, to ignore the second button, or just use the new one (bit more changes), but I think it would make more sense

Now, since neither Ruslan nor I can reproduce the issue it is somewhat hard to test.
I will send two patches (this one, and one that uses the second), for you to test, if you don't mind.
If the second also fixes the issue on your side, I guess I'll push the change.

Thanks in advance,

Hugo

Revision history for this message
In , Hugo Pereira Da Costa (hugo-pereira) wrote :

(In reply to Ghislain Nadeau from comment #6)
> Same problem. I wonder if it's an Eclipse or KDE bug, everything was wonking
> fine a few days ago.
> I just made a kubuntu update, and reinstalled eclipse, so i don't know which
> one is the culprit

nothing has changed on oxygen-gtk for month.
So this is either
- an upstream bug (gtk, ecclipse, swt ...)
or an old bug, never triggered before changes to upstream code.

Revision history for this message
In , Hugo Pereira Da Costa (hugo-pereira) wrote :

Created attachment 88914
tentative patch

This patch disconnect the "old" button assigned to the combobox, and connects the new one.
Please tell me if it 'still' fixes the issue

Revision history for this message
In , Hugo Pereira Da Costa (hugo-pereira) wrote :

Created attachment 88915
tentative patch

This patch is similar to the one proposed in comment #5, plus a warning.
Will be pushed in the one posted in the previous comment does not work.

Revision history for this message
In , Ruslan (b7-10110111) wrote :

I'm now able to reproduce this crash in a virtual Kubuntu 14.04 i386 system. Easily reproduces when I open Eclipse-CDT, select File->New->C Project, and then click in the element under the one selected in the tree view (not sure if this click is necessary, things were running rather slow, and I only saw the assertion failure after the click).

I'll try to test your patches when I'm at home.

Revision history for this message
In , Axel Mueller (aegges) wrote :

This seems to be a bug in GTK according to https://bugs.launchpad.net/ubuntu/+source/gtk2-engines-oxygen/+bug/1242801
(there a similar problem for Meld was reported).
Another workaround mentioned there is
For oxygen, edit the normally already existing file "/usr/share/themes/oxygen-gtk/gtk-2.0/gtkrc" and change
    GtkComboBox::appears-as-list = 1
into
    GtkComboBox::appears-as-list = 0

Revision history for this message
In , Ruslan (b7-10110111) wrote :

Indeed, this seems to be true, just checked. Looks like this bug is a duplicate of bug 326424.

Revision history for this message
In , xor (xor) wrote :

Can confirm: Makes Eclipse Luna (latest) unusable for me on Kubuntu 14.04 amd64. Crashes at Launch configuration / Debug configuration window every time. Those are very important parts of the UI, without them Eclipse is useless.

Revision history for this message
In , Ruslan (b7-10110111) wrote :

OK, I've tested both patches. Of course, both avoid the crash, but the first one works better: in the "New C Project" dialog, if I unset "Use default location", clicking "Choose file system" (with "default" text by default) makes the button press as a whole. With the second patch, which just ignores the new button, only the down-arrow-button is rendered sunken, while the text field part remains unpressed.
Also, the second (ignore new button one) spits lots of warnings to the console, while the first one only prints one warning.

Revision history for this message
In , Hugo Pereira Da Costa (hugo-pereira) wrote :

Hi Ruslan,
Thanks for the testing.
The patch behavior you describe is more or less expected. So I'll push the first patch, and close this bug report.
Then we'll have to make a new release in a couple of days, I guess ...

Revision history for this message
In , Hugo Pereira Da Costa (hugo-pereira) wrote :

Git commit 1d25c917611546a944d3aee56fc792c4eab87d89 by Hugo Pereira Da Costa.
Committed on 01/10/2014 at 10:17.
Pushed by hpereiradacosta into branch '1.4'.

Disconnect old button if already set
Connect new button

M +7 -1 src/animations/oxygencomboboxdata.cpp

http://commits.kde.org/oxygen-gtk/1d25c917611546a944d3aee56fc792c4eab87d89

Revision history for this message
In , Hugo Pereira Da Costa (hugo-pereira) wrote :

Git commit 68e4caa170f6103cd4a2b5e51a14190dc1fa6cbf by Hugo Pereira Da Costa.
Committed on 01/10/2014 at 10:17.
Pushed by hpereiradacosta into branch 'gtk3'.

Disconnect old button if already set
Connect new button

M +7 -1 src/animations/oxygencomboboxdata.cpp

http://commits.kde.org/oxygen-gtk/68e4caa170f6103cd4a2b5e51a14190dc1fa6cbf

Revision history for this message
V字龍(Vdragon) (vdragon) wrote :
Revision history for this message
Ruslan (b7-10110111) wrote :
Revision history for this message
Lars Neumann (lars.neumann) wrote :

Same problem exists on Kubuntu 14.04 with gtk2-engines-oxygen 1.4.5-0ubuntu1.

Start Eclipse, go to Window -> Preferences -> General -> Appearance and Eclipse crashes with the same error message.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in gtk2-engines-oxygen (Ubuntu):
status: New → Confirmed
Changed in gtk2-engines-oxygen:
importance: Unknown → High
status: Unknown → Fix Released
Revision history for this message
Malte S. Stretz (mss) wrote :

This should be fixed in version 1.4.6.

Changed in gtk2-engines-oxygen (Ubuntu):
importance: Undecided → High
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.