On Fri, 2 Feb 2024 00:58:31 -0800 Josh Triplett <j...@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
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@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@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.