Bug 278874 - Several game installers crash when using oxygen-gtk theme
Summary: Several game installers crash when using oxygen-gtk theme
Status: CLOSED DOWNSTREAM
Alias: None
Product: Oxygen
Classification: Plasma
Component: gtk2-engine (show other bugs)
Version: 4.0
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Hugo Pereira Da Costa
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-07-30 17:58 UTC by Alex Lowe
Modified: 2013-02-14 19:09 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Lowe 2011-07-30 17:58:06 UTC
Version:           4.0 (using KDE 4.7.0) 
OS:                Linux

When oxygen-gtk is set as the theme, several installers of commercial games crash. 

I have found that this occurs with the following application installers:

Aquaria
Braid
Cogs
Cortex Command
Hammerfight
Heroes of Newerth

I have included the terminal output of some of these under "Additional Information".

This does not occur when installing the Penumbra Collection, though it appears to use a different installer.

Reproducible: Always

Steps to Reproduce:
0. Make sure the GTK+ theme is oxygen-gtk.
1. Download the installer of one of these (Heroes of Newerth is free)
2. Attempt to run the installer as regular user (DO NOT use sudo)

Actual Results:  
Installer spits out Gtk errors and segfaults

Expected Results:  
Installation window opens and installer runs

For example, Heroes of Newerth.

When run with oxygen-gtk:

$ ./HoNClient-2.1.0.1.sh 
199096+0 records in
388+1 records out
199096 bytes (199 kB) copied, 0.134229 s, 1.5 MB/s

(<unknown>:7869): Gtk-CRITICAL **: IA__gtk_text_attributes_ref: assertion `values != NULL' failed

(<unknown>:7869): Gtk-CRITICAL **: IA__gtk_text_attributes_ref: assertion `values != NULL' failed
Segmentation fault

This segfault occurs before the installer window appears.

Using the Oxygen-Molecule or Raleigh theme, the installation occurs normally, with no Gtk output to the shell:

$ ./HoNClient-2.1.0.1.sh 
199096+0 records in
388+1 records out
199096 bytes (199 kB) copied, 0.17326 s, 1.1 MB/s


Hammerfight has a similar issue. When run with oxygen-gtk:

$ ./hf-linux-07172011-bin 

(<unknown>:8399): Gtk-WARNING **: Error loading icon: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: wrong ELF class: ELFCLASS64

(<unknown>:8399): Gtk-WARNING **: Error loading icon: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: wrong ELF class: ELFCLASS64

(<unknown>:8399): Gtk-WARNING **: Error loading icon: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: wrong ELF class: ELFCLASS64

(<unknown>:8399): Gtk-WARNING **: Error loading icon: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: wrong ELF class: ELFCLASS64

(<unknown>:8399): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

** (<unknown>:8399): CRITICAL **: GdkPixbuf* Oxygen::render_icon(GtkStyle*, const GtkIconSource*, GtkTextDirection, GtkStateType, GtkIconSize, GtkWidget*, const char*): assertion `base_pixbuf != 0L' failed

(<unknown>:8399): Gtk-CRITICAL **: IA__gtk_style_render_icon: assertion `pixbuf != NULL' failed

(<unknown>:8399): Gtk-CRITICAL **: IA__gtk_text_attributes_ref: assertion `values != NULL' failed

(<unknown>:8399): Gtk-CRITICAL **: IA__gtk_text_attributes_ref: assertion `values != NULL' failed
Segmentation fault

Using the Oxygen-Molecule theme results in almost 19,000 lines and will be included in an attachment. There is no output to either the terminal when using the Raleigh theme.
Comment 1 Alex Lowe 2011-07-30 18:11:43 UTC
I should probably add that the easiest workaround for this is to temporarily change the GTK theme. Oxygen-Molecule and Raleigh both work fully with all of these applications.

Another workaround is to SSH into the local machine with X11 forwarding, which does essentially the same as changing the theme (the KDE theme override will not occur in the SSH session).
Comment 2 Alex Lowe 2011-07-30 18:52:19 UTC
This also appears to occur with the Codeweavers installer. I've made a post on the Codeweavers forums (https://www.codeweavers.com/support/forums/general/?t=26;msg=110142) which links their bug posts to this one.

The bugs submitted on the Codeweavers site are:

http://www.codeweavers.com/support/tickets/browse/?ticket_id=846822
http://www.codeweavers.com/support/tickets/browse/?ticket_id=845126
http://www.codeweavers.com/support/tickets/browse/?ticket_id=851997
Comment 3 Alex Lowe 2011-07-30 20:15:48 UTC
Okay, another addendum:

Adding the environment variable GTK2_RC_FILES=/usr/share/themes/Default/gtk-2.0-key/gtkrc to the beginning of one of these commands will use the default GTK theme for that command, overriding the KDE settings. Again, this is not a fix, but a workaround.

According to the Ubuntu forums, this also occurs on the Savage 2 installer (http://ubuntuforums.org/showthread.php?p=10887506#poststop)

This bug has also popped up on the Phoronix forums (http://phoronix.com/forums/showthread.php?39218-HoN-sale), the Ubuntu IRC (http://irclogs.ubuntu.com/2011/06/16/%23kubuntu.txt) and in other locations on the Ubuntu forums (http://ubuntuforums.org/showthread.php?p=10887045#poststop).

Doing a Google search for relevant things to this bug, I've found it as output from the Braid installer (http://pastebin.com/nx8iny33) and elsewhere on the Heroes of Newerth forums (http://forums.heroesofnewerth.com/showthread.php?t=289349) (and I've made a post with the workaround on the Heroes of Newerth forum: http://forums.heroesofnewerth.com/showthread.php?p=14022727#post14022727).

I hope this information helps.
Comment 4 Ruslan Kabatsayev 2011-07-31 04:37:54 UTC
Can't reproduce with HoNClient-2.1.0.1.sh. I've successfully installed it without any error in terminal (with GTK+ 2.24.3).
What oxygen-gtk and GTK+ versions do you have?
Also, it would be more helpful if you could get a backtrace from segfault, having installed oxygen-gtk with debug symbols.
Comment 5 Hugo Pereira Da Costa 2011-07-31 09:25:45 UTC
The second crash from comment #1 is different from the first.
It's an 'assert' in our code. We can probably get rid of it, and fall back to the parent style method when null pointer is detected. Ruslan ? You agree ? (ı have no computer access atm to test or patch)
Comment 6 Ruslan Kabatsayev 2011-07-31 09:49:14 UTC
(<unknown>:8399): Gtk-WARNING **: Error loading icon: Unable to load
image-loading module:
/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: wrong ELF class:
ELFCLASS64

This in fact indicates why assertion fails. There's something messed up with 32/64 bit GTK/libpixbufloader-png.so installation. I don't think it's our code which has the actual bug.
Comment 7 Ruslan Kabatsayev 2011-07-31 10:09:51 UTC
@Hugo
Though yes, if you want a super-stable theme, which would resist some installation inconsistencies, we can fall back to parent style :)
Comment 8 Hugo Pereira Da Costa 2011-08-01 07:22:38 UTC
At Ruslan

Ok. In fact I take my comment back. The pixbuf related crash is not ours.
Our assertion forces 0L to be returned, and the crash actually happens upstream. 

Gtk-CRITICAL **: IA__gtk_style_render_icon: assertion `pixbuf
!= NULL' failed

So would the parent-style implementation do. 

There is indeed some library loading mix-up (between 32 and 64 bits) in the second crash report we have, as you've pointed out, and there is nothing we (oxygen) can do about it. I suspect some installation/config/LD_PATH issues.
(which would also explain why you can't reproduce).
Comment 9 Philipp A. 2011-08-04 10:23:54 UTC
i have the same crashes. any hint how to fix the upstream bug?
Comment 10 Ruslan Kabatsayev 2011-08-04 11:01:47 UTC
After some googling, it looks like second crash is because of the bug in latest ia32-libs package. If you are on Ubuntu 11.04, try downgrading to this package version: http://packages.ubuntu.com/maverick/amd64/ia32-libs/download
(Use this command after you download the package:
sudo dpkg --force-downgrade -i ia32-libs_20090808ubuntu9.1_amd64.deb
)
This bug is reported here: https://bugs.launchpad.net/ubuntu/+source/ia32-libs/+bug/783155

As for first crash, original reporter hasn't yet provided any further information (see comment #4). If it disappears after downgrading ia32-libs too, please let us know.
Comment 11 Alex Lowe 2011-11-29 15:35:28 UTC
This bug no longer seems to exist with updated packages. I believe Ruslan was correct that it's a downstream problem.
Comment 12 jack 2013-02-14 18:10:11 UTC
This bug appears to be back - when I install Crossover from the .bin installer script on Fedora 18 KDE (4.9.5), the installation fails with:

--------

(installer.kRRqS4Xatx:2123): Gtk-CRITICAL **: IA__gtk_text_attributes_ref: assertion `values != NULL' failed

(installer.kRRqS4Xatx:2123): Gtk-CRITICAL **: IA__gtk_text_attributes_ref: assertion `values != NULL' failed
/home/jack/Downloads/install-crossover-12.1.0.bin: line 129:  2123 Segmentation fault      (core dumped) "$installer" "$@"

--------

Switching the "Widget Style" settings in "System Settings>Application Appearance>GTK+ Appearance" to anything other than "oxygen-gtk" will allow the install to complete successfully. Crossover will work just fine after installation if I switch the Widget Style back to oxygen-gtk, it just fails on the install. I'll attach a demo installer for testing.
Comment 13 jack 2013-02-14 18:13:59 UTC
addendum: attachment was too large. Crossover installer demo can be downloaded for testing this bug from:

http://ftp.codeweavers.com/pub/crossover/cxlinux/demo/install-crossover-12.1.0.bin
Comment 14 Hugo Pereira Da Costa 2013-02-14 19:09:07 UTC
What's the version of oxygen-gtk that you are using ? 
and can you try with the latest release (oxygen-gtk2-1.3.2.1.tar.gz
the 1.3.2 was buggy.