Bug#1062205: Crashes desktop when attempting to make a network display

Bernhard Übelacker bernhardu at mailbox.org
Sun Apr 28 21:47:40 BST 2024


On Fri, 2 Feb 2024 00:58:31 -0800 Josh Triplett <josh at joshtriplett.org> wrote:

> Feb 02 00:28:37 o kernel: gnome-shell[1083]: segfault at 20 ip 00007fececdf8f04 sp 00007ffc5ad85ed8 error 4 in libmutter-clutter-12.so.0.0.0[7fececda5000+90000] likely on CPU 3 (core 4, socket 0)
> Feb 02 00:28:37 o kernel: Code: c3 0f 1f 44 00 00 48 8d 15 e1 1a 04 00 48 8d 35 d2 7e 05 00 48 8d 3d 4e f4 03 00 e9 d6 f2 fa ff 66 0f 1f 44 00 00 f3 0f 1e fa <48> 8b 47 20 c3 0f 1f 80 00 00 00 00 f3 0f 1e fa 48 8b 47 28 c3 0f


Hello,
I am not involved in maintaining this package, just looking through some crash reports.

My attempt to resolve the dmesg lines from the crash to a source line information led me here:

   clutter_paint_context_get_redraw_clip at ../clutter/clutter/clutter-paint-context.c:140

   https://sources.debian.org/src/mutter/44.8-3.1/clutter/clutter/clutter-paint-context.c/#L140
   137     const cairo_region_t *
   138     clutter_paint_context_get_redraw_clip (ClutterPaintContext *paint_context)
   139     {
   140       return paint_context->redraw_clip;
   141     }

This function name leads to following bug report, which sounds interesting:
   https://gitlab.gnome.org/GNOME/mutter/-/issues/2876

And which got fixed by this merge request:
   https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3283

First upstream release containing this fix would be 45.1,
unfortunately not yet in unstable or testing.


But a proper backtrace might still help to confirm, if this crash is
really the same which is described in the mentioned mutter bug report.
   https://wiki.debian.org/HowToGetABacktrace
Simplest version could be to install systemd-coredump
and inspecting the journal after a crash.

Kind regards,
Bernhard
-------------- next part --------------

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1062205
https://wiki.debian.org/HowToGetABacktrace
https://wiki.debian.org/InterpretingKernelOutputAtProcessCrash


Feb 02 00:28:37 o kernel: gnome-shell[1083]: segfault at 20 ip 00007fececdf8f04 sp 00007ffc5ad85ed8 error 4 in libmutter-clutter-12.so.0.0.0[7fececda5000+90000] likely on CPU 3 (core 4, socket 0)
Feb 02 00:28:37 o kernel: Code: c3 0f 1f 44 00 00 48 8d 15 e1 1a 04 00 48 8d 35 d2 7e 05 00 48 8d 3d 4e f4 03 00 e9 d6 f2 fa ff 66 0f 1f 44 00 00 f3 0f 1e fa <48> 8b 47 20 c3 0f 1f 80 00 00 00 00 f3 0f 1e fa 48 8b 47 28 c3 0f


error 4 == 0b00000100:
 *   bit 0 ==    0: no page found
 *   bit 1 ==    0: read access
 *   bit 2 ==    1: user-mode access
.





# 2024-04-28 Trixie/testing amd64 qemu VM

apt update
apt dist-upgrade
apt build-dep libmutter-12-0

apt install systemd-coredump gdb libmutter-12-0 libmutter-12-0-dbgsym coreutils-dbgsym



mkdir /home/benutzer/source/libmutter-12-0/orig -p
cd    /home/benutzer/source/libmutter-12-0/orig
apt source libmutter-12-0



echo -n "find /b ..., ..., 0x" && \
echo "c3 0f 1f 44 00 00 48 8d 15 e1 1a 04 00 48 8d 35 d2 7e 05 00 48 8d 3d 4e f4 03 00 e9 d6 f2 fa ff 66 0f 1f 44 00 00 f3 0f 1e fa <48> 8b 47 20 c3 0f 1f 80 00 00 00 00 f3 0f 1e fa 48 8b 47 28 c3 0f" \
 | sed 's/[<>]//g' | sed 's/ /, 0x/g'



gdb -q 
set width 0
set pagination off
file /usr/bin/true
tb main
run
call dlopen("/usr/lib/x86_64-linux-gnu/mutter-12/libmutter-clutter-12.so.0.0.0",0x102)
pipe info target | grep "\.text.*libmutter-clutter"
find /b 0x00007ffff7cf0f30, 0x00007ffff7d7a6de, 0xc3, 0x0f, 0x1f, 0x44, 0x00, 0x00, 0x48, 0x8d, 0x15, 0xe1, 0x1a, 0x04, 0x00, 0x48, 0x8d, 0x35, 0xd2, 0x7e, 0x05, 0x00, 0x48, 0x8d, 0x3d, 0x4e, 0xf4, 0x03, 0x00, 0xe9, 0xd6, 0xf2, 0xfa, 0xff, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00, 0xf3, 0x0f, 0x1e, 0xfa, 0x48, 0x8b, 0x47, 0x20, 0xc3, 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x0f, 0x1e, 0xfa, 0x48, 0x8b, 0x47, 0x28, 0xc3, 0x0f
b * (0x7ffff7d3eeda + 42)
info b
disassemble /r 0x7ffff7d3eeda, 0x7ffff7d3eeda + 62
directory /home/benutzer/source/libmutter-12-0/orig/mutter-44.8/clutter



benutzer at debian:~$ gdb -q 
(gdb) set width 0
(gdb) set pagination off
(gdb) file /usr/bin/true
Reading symbols from /usr/bin/true...
Reading symbols from /usr/lib/debug/.build-id/04/6669aefa60ba9f99cc1c829bf6aac6e0d05d4c.debug...
(gdb) tb main
Temporary breakpoint 1 at 0x2310: file src/true.c, line 56.
(gdb) run
Starting program: /usr/bin/true 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Temporary breakpoint 1, main (argc=1, argv=0x7fffffffe488) at src/true.c:56
56      src/true.c: Datei oder Verzeichnis nicht gefunden.
(gdb) call dlopen("/usr/lib/x86_64-linux-gnu/mutter-12/libmutter-clutter-12.so.0.0.0",0x102)
$1 = (void *) 0x55555555e340
(gdb) pipe info target | grep "\.text.*libmutter-clutter"
        0x00007ffff7cf0f30 - 0x00007ffff7d7a6de is .text in /usr/lib/x86_64-linux-gnu/mutter-12/libmutter-clutter-12.so.0.0.0
(gdb) find /b 0x00007ffff7cf0f30, 0x00007ffff7d7a6de, 0xc3, 0x0f, 0x1f, 0x44, 0x00, 0x00, 0x48, 0x8d, 0x15, 0xe1, 0x1a, 0x04, 0x00, 0x48, 0x8d, 0x35, 0xd2, 0x7e, 0x05, 0x00, 0x48, 0x8d, 0x3d, 0x4e, 0xf4, 0x03, 0x00, 0xe9, 0xd6, 0xf2, 0xfa, 0xff, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00, 0xf3, 0x0f, 0x1e, 0xfa, 0x48, 0x8b, 0x47, 0x20, 0xc3, 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x0f, 0x1e, 0xfa, 0x48, 0x8b, 0x47, 0x28, 0xc3, 0x0f
0x7ffff7d3eeda <clutter_paint_context_pop_framebuffer+42>
1 pattern found.
(gdb) b * (0x7ffff7d3eeda + 42)
Breakpoint 2 at 0x7ffff7d3ef04: file ../clutter/clutter/clutter-paint-context.c, line 140.
(gdb) info b
Num     Type           Disp Enb Address            What
2       breakpoint     keep y   0x00007ffff7d3ef04 in clutter_paint_context_get_redraw_clip at ../clutter/clutter/clutter-paint-context.c:140
(gdb) disassemble /r 0x7ffff7d3eeda, 0x7ffff7d3eeda + 62
Dump of assembler code from 0x7ffff7d3eeda to 0x7ffff7d3ef18:
   0x00007ffff7d3eeda <clutter_paint_context_pop_framebuffer+42>:       c3                      ret
   0x00007ffff7d3eedb <clutter_paint_context_pop_framebuffer+43>:       0f 1f 44 00 00          nopl   0x0(%rax,%rax,1)
   0x00007ffff7d3eee0 <clutter_paint_context_pop_framebuffer+48>:       48 8d 15 e1 1a 04 00    lea    0x41ae1(%rip),%rdx        # 0x7ffff7d809c8
   0x00007ffff7d3eee7 <clutter_paint_context_pop_framebuffer+55>:       48 8d 35 d2 7e 05 00    lea    0x57ed2(%rip),%rsi        # 0x7ffff7d96dc0 <__func__.2>
   0x00007ffff7d3eeee <clutter_paint_context_pop_framebuffer+62>:       48 8d 3d 4e f4 03 00    lea    0x3f44e(%rip),%rdi        # 0x7ffff7d7e343
   0x00007ffff7d3eef5 <clutter_paint_context_pop_framebuffer+69>:       e9 d6 f2 fa ff          jmp    0x7ffff7cee1d0 <g_return_if_fail_warning at plt>
   0x00007ffff7d3eefa:                                                  66 0f 1f 44 00 00       nopw   0x0(%rax,%rax,1)
   0x00007ffff7d3ef00 <clutter_paint_context_get_redraw_clip+0>:        f3 0f 1e fa             endbr64
   0x00007ffff7d3ef04 <clutter_paint_context_get_redraw_clip+4>:        48 8b 47 20             mov    0x20(%rdi),%rax       <<<<<<<<<<
   0x00007ffff7d3ef08 <clutter_paint_context_get_redraw_clip+8>:        c3                      ret
   0x00007ffff7d3ef09:                                                  0f 1f 80 00 00 00 00    nopl   0x0(%rax)
   0x00007ffff7d3ef10 <clutter_paint_context_get_clip_frusta+0>:        f3 0f 1e fa             endbr64
   0x00007ffff7d3ef14 <clutter_paint_context_get_clip_frusta+4>:        48 8b 47 28             mov    0x28(%rdi),%rax
End of assembler dump.
(gdb) directory /home/benutzer/source/libmutter-12-0/orig/mutter-44.8/clutter
Source directories searched: /home/benutzer/source/libmutter-12-0/orig/mutter-44.8/clutter:$cdir:$cwd
(gdb) list clutter-paint-context.c:140
135     }
136
137     const cairo_region_t *
138     clutter_paint_context_get_redraw_clip (ClutterPaintContext *paint_context)
139     {
140       return paint_context->redraw_clip;
141     }
142
143     const GArray *
144     clutter_paint_context_get_clip_frusta (ClutterPaintContext *paint_context)
(gdb)



https://sources.debian.org/src/mutter/44.8-3.1/clutter/clutter/clutter-paint-context.c/#L140

https://gitlab.gnome.org/GNOME/mutter/-/issues/2876
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3283
https://gitlab.gnome.org/GNOME/mutter/-/commit/c4b9431bb222e7f2f02fd7c1f3062dad6a71acfd

mutter 44.8-3

First upstream release containing this fix would be 45.1.


More information about the pkg-gnome-maintainers mailing list