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