After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 774021 - Segfault in libmutter.so and libgtk-3.so when login through gdm
Segfault in libmutter.so and libgtk-3.so when login through gdm
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: login-screen
3.22.x
Other Linux
: Normal major
: ---
Assigned To: Ray Strode [halfline]
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2016-11-06 19:46 UTC by jesusignazio
Modified: 2017-04-25 21:23 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
ldd for gnome-shell (9.95 KB, text/plain)
2017-04-12 12:15 UTC, asl
Details
configure output (18.93 KB, text/plain)
2017-04-13 09:46 UTC, asl
Details

Description jesusignazio 2016-11-06 19:46:52 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
Comment 1 Debarshi Ray 2016-11-07 13:28:08 UTC
Sounds a bit like bug 773928

Can you compare the mesa versions and see if downgrading it fixes the problem?
Comment 2 asl 2017-04-10 22:16:52 UTC
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.
Comment 3 Jonas Ådahl 2017-04-11 02:47:11 UTC
(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*?
Comment 4 asl 2017-04-12 12:15:48 UTC
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)
Comment 5 Jonas Ådahl 2017-04-13 09:25:50 UTC
(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.
Comment 6 Jonas Ådahl 2017-04-13 09:27:44 UTC
> So, here is the issue. Starting with gnome-3.20, libmutter (and gnome-shell)

Sorry, meant 3.22 here.
Comment 7 asl 2017-04-13 09:46:57 UTC
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.
Comment 8 Jonas Ådahl 2017-04-14 02:13:16 UTC
(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.
Comment 9 asl 2017-04-14 08:45:49 UTC
Already done, began there before finding the bug here:

https://bugs.gentoo.org/show_bug.cgi?id=614864
Comment 10 asl 2017-04-18 10:55:01 UTC
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 ?
Comment 11 jesusignazio 2017-04-25 21:21:44 UTC
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.
Comment 12 jesusignazio 2017-04-25 21:23:51 UTC
Marked as solved.