FS#34892 - [glib2] 2.36.1-1 causes fusion-icon to crash
Attached to Project:
Arch Linux
Opened by Pantelis Panayiotou (plp) - Monday, 22 April 2013, 18:11 GMT
Last edited by Bartłomiej Piotrowski (Barthalion) - Thursday, 02 January 2014, 21:01 GMT
Opened by Pantelis Panayiotou (plp) - Monday, 22 April 2013, 18:11 GMT
Last edited by Bartłomiej Piotrowski (Barthalion) - Thursday, 02 January 2014, 21:01 GMT
|
Details
Description:
------------ This has broken the desktop of several people who use Compiz with XFCE4. Downgrading to glib2 2.34 solves the problem. However, this is not an option, as doing so breaks a number of Gnome apps. More information can be found in this post: https://bbs.archlinux.org/viewtopic.php?pid=1262345#p1262345 Additional info: ---------------- GDB output: (gdb) exec-file python2 (gdb) run /usr/bin/fusion-icon Starting program: /usr/bin/python2 /usr/bin/fusion-icon warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000 warning: Could not load shared library symbols for linux-vdso.so.1. Do you need "set solib-search-path" or "set sysroot"? [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/libthread_db.so.1". * Detected Session: xfce * Searching for installed applications... * Using the GTK Interface Program received signal SIGSEGV, Segmentation fault. 0x00007ffff74d1206 in __strcmp_sse2 () from /usr/lib/libc.so.6 (gdb) bt #0 0x00007ffff74d1206 in __strcmp_sse2 () from /usr/lib/libc.so.6 #1 0x00007ffff3b557b9 in g_str_equal () from /usr/lib/libglib-2.0.so.0 #2 0x00007ffff3b54ee0 in g_hash_table_lookup () from /usr/lib/libglib-2.0.so.0 #3 0x00007ffff3b74670 in g_quark_from_static_string () from /usr/lib/libglib-2.0.so.0 #4 0x00007ffff0be67bc in ?? () from /usr/lib/libgobject-2.0.so.0 #5 0x00007ffff7de9a9a in call_init () from /lib64/ld-linux-x86-64.so.2 #6 0x00007ffff7de9b6c in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2 #7 0x00007ffff7dedbd5 in dl_open_worker () from /lib64/ld-linux-x86-64.so.2 #8 0x00007ffff7de9914 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2 #9 0x00007ffff7ded44b in _dl_open () from /lib64/ld-linux-x86-64.so.2 #10 0x00007ffff724e02b in ?? () from /usr/lib/libdl.so.2 #11 0x00007ffff7de9914 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2 #12 0x00007ffff724e5dd in ?? () from /usr/lib/libdl.so.2 #13 0x00007ffff724e0c1 in dlopen () from /usr/lib/libdl.so.2 #14 0x00007ffff7b2158f in _PyImport_GetDynLoadFunc () from /usr/lib/libpython2.7.so.1.0 #15 0x00007ffff7b0aace in _PyImport_LoadDynamicModule () from /usr/lib/libpython2.7.so.1.0 #16 0x00007ffff7b08cd9 in import_submodule () from /usr/lib/libpython2.7.so.1.0 #17 0x00007ffff7b08f1d in load_next () from /usr/lib/libpython2.7.so.1.0 #18 0x00007ffff7b09888 in PyImport_ImportModuleLevel () from /usr/lib/libpython2.7.so.1.0 Steps to reproduce: ------------------- Just execute fusion-icon. |
This task depends upon
Closed by Bartłomiej Piotrowski (Barthalion)
Thursday, 02 January 2014, 21:01 GMT
Reason for closing: Won't fix
Additional comments about closing: Compiz and its related packages have been dropped to AUR.
Thursday, 02 January 2014, 21:01 GMT
Reason for closing: Won't fix
Additional comments about closing: Compiz and its related packages have been dropped to AUR.
Apr 22 21:37:07 hepburn kernel: xfce4-session[2128]: segfault at ffffffff00000000 ip 00007fa36e156537 sp 00007fff72717340 error 5 in libglib-2.0.so.0.3600.1[7fa36e0f3000+fc000]
leading to several components dumping core and session crash/logout. Reverting to 2.34 has solved this for now.
[--ljohnson{16:32:22}~]$ fusion-icon
* Detected Session: xfce
* Searching for installed applications...
* NVIDIA on Xorg detected, exporting: __GL_YIELD=NOTHING
* Using the GTK Interface
Segmentation fault (core dumped)
That's exactly the line from dmesg:
xfce4-session[451]: segfault at ffffffff00000000 ip 00007f9802f24537 sp 00007fffb8eeba50 error 5 in libglib-2.0.so.0.3600.1[7f9802ec1000+fc000]
robert@robert-tp /usr/lib % pacman -Qo ./libglib-2.0.so.0.3600.1
./libglib-2.0.so.0.3600.1 is owned by glib2 2.36.1-2
$ pacman -Qi glib2 | grep -i version
Version : 2.36.1-2
$ fusion-icon
* Detected Session: /usr/bin/startxfce4
* Searching for installed applications...
* Intel detected, exporting: INTEL_BATCH=1
* Using the GTK Interface
Segmentation fault (core dumped)
Fedora users also seem to experience the problem.
I could not find a relevant bug at the GTK+ tracker: https://bugzilla.gnome.org/buglist.cgi?quicksearch=magazine_chain_pop_head
The code of g_str_equal() is in glib/ghash.c, and is quite straightforward. So, one can see how the crash is caused:
gboolean
g_str_equal (gconstpointer v1,
gconstpointer v2)
{
const gchar *string1 = v1;
const gchar *string2 = v2;
return strcmp (string1, string2) == 0;
}
Please take a look at https://bugs.archlinux.org/task/34630#comment108896.
Is this the same g_quark_from_static_string() that is called during libgobject initialization? If so, it may not be actually calling strcmp() but executing some random other code instead due to the linking problem I described (just as g_malloc() thought it was calling malloc() but instead tried to read a DWORD from port 24h.)
(gdb) run /usr/bin/fusion-icon
Starting program: /usr/bin/python2 /usr/bin/fusion-icon
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
* Detected Session: unknown
* Searching for installed applications...
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff757735c in __strcmp_ssse3 () from /usr/lib/libc.so.6
(gdb) bt
#0 0x00007ffff757735c in __strcmp_ssse3 () from /usr/lib/libc.so.6
#1 0x00007ffff3b577b9 in g_str_equal () from /usr/lib/libglib-2.0.so.0
#2 0x00007ffff3b56ee0 in g_hash_table_lookup () from /usr/lib/libglib-2.0.so.0
#3 0x00007ffff3b76a70 in g_intern_static_string () from /usr/lib/libglib-2.0.so.0
I tried the fix proposed in the bug report you sent (adding a "sed -ie '/SANE_MALLOC_PROTOS/d' config.h" between configure and make) and the crash still happens for me. Also, I tried adding a printf("%s %s\n", string1, string2); before the return statement, and fusion-icon crashed when executing that printf().
So, you are right: this isn't the same problem as that of #34630.
For the time being, I found I can launch xfwm4 from terminal as user to get my mouse cursor and window decorations back (although I cannot see the cursor before I do this, I can see the desktop and taskbar icons "highlight" and when my invisible mouse passes over them and can then click on the icons to launch whatever).
I hope the solution is found soon. I want my Compiz back (I have video tearing without it).
@jelle I think this bug is caused by glib2 update, so this maybe can be fixed by gnome devs :-)
What I did and how it works:
I noticed that Python crashes when the script attempts to "import gtk" within an if block that resides in a function. However, "import gtk" works fine when executed as a stand-alone statement. So, I added the following lines of code to /usr/bin/fusion-icon:
try:
import gtk
except ImportError:
pass
This way, the gtk module gets imported correctly (if it exists) and no crash occures when the program tries to reload it later on.
Note that this is essentially a workaround. The bug that's causing the crash is still hidden somewhere in the code of glib and/or pygtk. After all, interpreters and GUI libraries aren't supposed to dump core when you try to run a script.
fusion-icon-1:0.1-2.src.tar.gz (1.2 KiB)
core/glib2 2.36.1-3 [installed]
multilib/lib32-glib2 2.36.1-3 [installed]
Your patched fusion-icon file works - sort of. Compiz runs and the icon works fine, but the "Log Out, Restart, Shut Down, Suspend, and Hibernate" icon just logs me out when I click on it. Also sometimes starting something like terminal or thunar brings me to the login screen.
For the time being I am using compton in place of Compiz. Compiz is definitely more feature-rich, but it just isn't working for me at this time.
http://www.neowin.net/forum/topic/1148464-using-compton-for-tear-free-compositing-in-xfce/
core/glib2 2.36.1-3 [installed]
multilib/lib32-glib2 2.36.1-3 [installed]
Your patched fusion-icon file works - sort of. Compiz runs and the icon works fine, but the "Log Out, Restart, Shut Down, Suspend, and Hibernate" icon just logs me out when I click on it. Also sometimes starting something like terminal or thunar brings me to the login screen.
For the time being I am using compton in place of Compiz. Compiz is definitely more feature-rich, but it just isn't working for me at this time.
http://www.neowin.net/forum/topic/1148464-using-compton-for-tear-free-compositing-in-xfce/
It looks glib2 2.36.1 is causing X and compiz related crashes for other people, as well:
https://bbs.archlinux.org/viewtopic.php?pid=1262739
I'm not getting any of these though (except for the fusion-icon ones), and I have a suspicion that these may be video driver related. Are you using radeon, by any chance?
... and affected + lots of random X crashes (after working around the initial problem).
( No idea if that's a "clue" or not but: I happened not to do a "real" reboot for some days - system was working fine even after the update until I hibernated yesterday and then it froze on thaw, which was when the problem first appeared. After downgrading though, stuff started working again without reboot. )
whoops: I had a similar problem a few days ago, one that's still unresolved. I reported it on bbs but got no replies, and have no idea what to do about it. I'm scared of looking into Kernel code. https://bbs.archlinux.org/viewtopic.php?id=161100
Anyway, if we now know what causes the fusion-icon crash, and we know how to fix it, how do we communicate the fact to the maintainers of the package so that they can fix it? I'm not sure if anyone "in charge" is paying any attention to this bug...
https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/xfce4-session&id=5eeb5523deefc75a3bfa9044e1224d4eda1acdc4
https://bbs.archlinux.org/viewtopic.php?pid=1265784#p1265784
It may be that the fusion-icon crash and the random XFCE session crashes are unrelated. However, it looks like we have fixes for both now. :-)
Btw I use method 3 from arch wiki https://wiki.archlinux.org/index.php/Compiz#Method_3:
Fusion-icon loads OK via the menu.
$ startxfce4 2> startxfce4out
"fusion-icon_out" is the output from
$ fusion-icon &
fusion-icon_out (0.7 KiB)
1. It doesn't look like fusion-icon is crashing. First, there's no message about a SIGSEGV. And, second, compiz gets started (you can tell because it prints a 'Failed to load slide' warning to stderr) and we know that the crash happens before fusion-icon gets a chance to start compiz.
2. I wonder if 'startxfce4 2>startxfce4out' captures the entire output of startxfce4. Can you try 'script -c startxfce4' and post the result of the resulting 'typescript' file?
https://aur.archlinux.org/packages/fusion-icon-fixed/
EDIT: Just tried again. Noticed a small typo. Had to remove forward slash from <property name="Client0_Command" type="array">
Method 3 works fine now. Really have to check very carefully for typos in the .xml file.
My xfce4-session.xml looks OK. David: when you say method 3 works OK do you mean that both fusion-icon & compiz load at startup, or is it just compiz?
Edit: ~/.cache/sessions was corrupted. Deleted it & it's working again now - apologies for wasting everyone's time.
------
O.K. - seems to work after removing fusion-icon and installing fusion-icon-fixed from AUR. Now Emerald window manager works, no more using work-arounds..!