GNOME Bugzilla – Bug 774021
Segfault in libmutter.so and libgtk-3.so when login through gdm
Last modified: 2017-04-25 21:23:51 UTC
When I try to login in Gnome shell from gdm it's getting me back to gdm and I cannot login. gnome-shell[3266]: segfault at 8 ip 00007fd2dc7fd170 sp 00007fff8f8be658 error 4 in libmutter.so.0.0.0[7fd2dc78e000+12b000] gnome-session-f[3317]: segfault at 0 ip 00007f30859235c9 sp 00007ffd8d1d5eb0 error 4 in libgtk-3.so.0.2200.2[7f3085641000+6f3000] I'm using Arch. gnome-shell-3.22 mesa-13.0.0-1 gtk3-3.22.2 mutter-3.22.1
Sounds a bit like bug 773928 Can you compare the mesa versions and see if downgrading it fixes the problem?
I /think/ I'm hitting the same thing since the last gentoo upgrade (gnome 3.22.3 / mutter 3.22.3), I did quite a bit of research: https://bugs.gentoo.org/show_bug.cgi?id=614864 There are coredumps and such there, should I repost them here ? I'm having this on two "different" desktop computers (different hardware, very similar software) -- also on a third (a laptop), it worked out of the box.
(In reply to asl from comment #2) > I /think/ I'm hitting the same thing since the last gentoo upgrade (gnome > 3.22.3 / mutter 3.22.3), I did quite a bit of research: > > https://bugs.gentoo.org/show_bug.cgi?id=614864 > > There are coredumps and such there, should I repost them here ? > > I'm having this on two "different" desktop computers (different hardware, > very similar software) -- also on a third (a laptop), it worked out of the > box. Looks like clutter is initialized with the wrong backend. The clutter backend is created by the mutter backend, which makes this extra wierd; if the mutter X11 backend i used, any backend selection process in clutter should be overridden. Could you double check that gnome-shell *only* links to libmutter-clutter, libmutter-cogl-* and *not* libclutter-* and libcogl*?
Created attachment 349721 [details] ldd for gnome-shell Here you are, with an ldd (I guess it's what you wanted ?) It seems it does link to everything: # grep -E "(cog|mutter)" /tmp/ldd.txt libmutter-cogl-pango.so => /usr/lib64/mutter/libmutter-cogl-pango.so (0x00007fc43017b000) libmutter.so.0 => /usr/lib64/libmutter.so.0 (0x00007fc42fa4b000) libcogl.so.20 => /usr/lib64/libcogl.so.20 (0x00007fc42d801000) libmutter-clutter-1.0.so => /usr/lib64/mutter/libmutter-clutter-1.0.so (0x00007fc42bad7000) libmutter-cogl.so => /usr/lib64/mutter/libmutter-cogl.so (0x00007fc428b71000) libcogl-path.so.20 => /usr/lib64/libcogl-path.so.20 (0x00007fc425ba6000) libcogl-pango.so.20 => /usr/lib64/libcogl-pango.so.20 (0x00007fc42599d000) libmutter-cogl-path.so => /usr/lib64/mutter/libmutter-cogl-path.so (0x00007fc4219b1000) For reference, the previous working gnome-shell, 3.20, linked with far less stuff: $ ldd /usr/bin/gnome-shell| grep -E "(cog|mutter)" libmutter.so.0 => /usr/lib64/libmutter.so.0 (0x00007fa62199c000) libcogl-pango.so.20 => /usr/lib64/libcogl-pango.so.20 (0x00007fa620902000) libcogl.so.20 => /usr/lib64/libcogl.so.20 (0x00007fa61dbcc000) libcogl-path.so.20 => /usr/lib64/libcogl-path.so.20 (0x00007fa6173bf000)
(In reply to asl from comment #4) > Created attachment 349721 [details] > ldd for gnome-shell > ... > libcogl.so.20 => /usr/lib64/libcogl.so.20 (0x00007fc42d > libmutter-cogl.so => /usr/lib64/mutter/libmutter-cogl.so > (0x00007fc428b71000) So, here is the issue. Starting with gnome-3.20, libmutter (and gnome-shell) use forks of clutter and cogl. These forks live inside the mutter repository, and built as libmutter-cogl.so and libmutter-clutter.so. So, what seems to happen is that something is pulling in the stand-alone (non-forked) version libclutter/libcogl*, while only the libmutter- ones should be loaded. Both being loaded will definitely not work. Are you building this from a clean directory? Are there any special flags or patches of any kind you have that might affect this? Note that starting from gnome 3.24, libmutter libraries will have an API version in the name too, meaning gnome-shell 3.24 will link against libmutter-0.so, libmutter-cogl-0.so libmutter-clutter-0.so etc. These too cannot be combined with any other version of the same library.
> So, here is the issue. Starting with gnome-3.20, libmutter (and gnome-shell) Sorry, meant 3.22 here.
Created attachment 349772 [details] configure output here is the configure line used when compiling it under my gentoo: ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --disable-silent-rules --docdir=/usr/share/doc/gnome-shell-3.22.3-r1 --htmldir=/usr/share/doc/gnome-shell-3.22.3-r1/html --libdir=/usr/lib64 --disable-gtk-doc --disable-maintainer-mode --disable-schemas-compile --enable-compile-warnings=minimum --enable-man --enable-systemd --with-bluetooth --disable-networkmanager --enable-browser-plugin BROWSER_PLUGIN_DIR=/usr/lib64/nsbrowser/plugins Also included the output of this command.
(In reply to asl from comment #7) > Created attachment 349772 [details] > configure output > > here is the configure line used when compiling it under my gentoo: > > ./configure --prefix=/usr --build=x86_64-pc-linux-gnu > --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info > --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib > --disable-dependency-tracking --disable-silent-rules > --docdir=/usr/share/doc/gnome-shell-3.22.3-r1 > --htmldir=/usr/share/doc/gnome-shell-3.22.3-r1/html --libdir=/usr/lib64 > --disable-gtk-doc --disable-maintainer-mode --disable-schemas-compile > --enable-compile-warnings=minimum --enable-man --enable-systemd > --with-bluetooth --disable-networkmanager --enable-browser-plugin > BROWSER_PLUGIN_DIR=/usr/lib64/nsbrowser/plugins > > Also included the output of this command. By the looks of it, Gentoo applies a patch related to the usage of the mutter specific libraries. I suggest opening a bug report in gentoo regarding this. I don't think there is anything we can do from here right now.
Already done, began there before finding the bug here: https://bugs.gentoo.org/show_bug.cgi?id=614864
Ok, it was a case where an ooold libmutter.la file was still hanging around and forcing the linking with all the libraries... With this file deleted, all went back into place. @jesusignazio could you check if you have something equivalent on your system ?
Hi: I think my problem was solved with some upgrade of the packages weeks ago. Current version is working fine: gnome-shell --version GNOME Shell 3.24.1 ldd /usr/bin/gnome-shell|grep -E "(cogl|mutt)" | sort libmutter-0.so.0 => /usr/lib/libmutter-0.so.0 (0x00007fa7f70c9000) libmutter-clutter-0.so => /usr/lib/mutter/libmutter-clutter-0.so (0x00007fa7f645b000) libmutter-cogl-0.so => /usr/lib/mutter/libmutter-cogl-0.so (0x00007fa7f2ddd000) libmutter-cogl-pango-0.so => /usr/lib/mutter/libmutter-cogl-pango-0.so (0x00007fa7f764b000) libmutter-cogl-path-0.so => /usr/lib/mutter/libmutter-cogl-path-0.so (0x00007fa7eb837000) Thank you very much.
Marked as solved.