Subject: bug#52883: xwidget-webkit webinspector segfaults emacs on sway

From: Akira Kyle <[email-masked]>
Date: Wed, 29 Dec 2021 19:58:50 -0700

This was on emacs from current master, under webkitgtk 2.32.1, and gkt+ 3.24.27

Here's the backtrace:
#0  0x0000ffffadbb9970 in raise () from
/nix/store/nvl1z67g91dfm0gfv0w0xd0h22cixq5i-glibc-2.32-46/lib/libpthread.so.0
#1  0x0000000000585300 in terminate_due_to_signal (sig=11,
backtrace_limit=40) at emacs.c:443
#2  0x00000000005b4a50 in handle_fatal_signal (sig=11) at sysdep.c:1780
#3  0x00000000005b4a1c in deliver_thread_signal (sig=11,
handler=0x5b4a38 <handle_fatal_signal>) at sysdep.c:1772
#4  0x00000000005b4a94 in deliver_fatal_thread_signal (sig=11) at sysdep.c:1792
#5  0x00000000005b4cb0 in handle_sigsegv (sig=11,
siginfo=0xffffc585f4c0, arg=0xffffc585f540) at sysdep.c:1885
#6  0x0000ffffaf77f2b8 in WTF::jscSignalHandler(int, siginfo_t*,
void*) () from /nix/store/kc6gkrrkrk2icp4pd76h3rrca6rmjc4v-webkitgtk-2.32.1/lib/libjavascriptcoregtk-4.0.so.18
#7  <signal handler called>
#8  0x0000ffffb06e761c in
WebKit::WebInspectorProxy::closeFrontendPageAndWindow() () from
/nix/store/kc6gkrrkrk2icp4pd76h3rrca6rmjc4v-webkitgtk-2.32.1/lib/libwebkit2gtk-4.0.so.37
#9  0x0000ffffb06e77ac in WebKit::WebInspectorProxy::invalidate() ()
from /nix/store/kc6gkrrkrk2icp4pd76h3rrca6rmjc4v-webkitgtk-2.32.1/lib/libwebkit2gtk-4.0.so.37
#10 0x0000ffffb05d0d94 in WebKit::WebPageProxy::close() () from
/nix/store/kc6gkrrkrk2icp4pd76h3rrca6rmjc4v-webkitgtk-2.32.1/lib/libwebkit2gtk-4.0.so.37
#11 0x0000ffffb06b0754 in webkitWebViewBaseDispose(_GObject*) () from
/nix/store/kc6gkrrkrk2icp4pd76h3rrca6rmjc4v-webkitgtk-2.32.1/lib/libwebkit2gtk-4.0.so.37
#12 0x0000ffffb0688c04 in webkitWebViewDispose(_GObject*) () from
/nix/store/kc6gkrrkrk2icp4pd76h3rrca6rmjc4v-webkitgtk-2.32.1/lib/libwebkit2gtk-4.0.so.37
#13 0x0000ffffb3f9b5f4 in g_object_run_dispose () from
/nix/store/bl4wjlfq1mmzw8x7jk2sf5hl4cyn3yj9-glib-2.68.2/lib/libgobject-2.0.so.0
#14 0x00000000006eaec0 in kill_xwidget (xw=0x3ca90e40) at xwidget.c:3458
#15 0x00000000006eb048 in kill_buffer_xwidgets (buffer=0x3ca909d5) at
xwidget.c:3496
#16 0x00000000005bf234 in Fkill_buffer (buffer_or_name=0x3c8f3c44) at
buffer.c:1891
#17 0x0000000000652bc8 in funcall_subr (subr=0xb197d0 <Skill_buffer>,
numargs=1, args=0xffffc5860cd0) at eval.c:3153
#18 0x00000000006527a0 in Ffuncall (nargs=2, args=0xffffc5860cc8) at eval.c:3078
#19 0x00000000006485a4 in Ffuncall_interactively (nargs=2,
args=0xffffc5860cc8) at callint.c:260
#20 0x0000000000652a9c in funcall_subr (subr=0xb1e090
<Sfuncall_interactively>, numargs=2, args=0xffffc5860cc8) at
eval.c:3133
#21 0x00000000006527a0 in Ffuncall (nargs=3, args=0xffffc5860cc0) at eval.c:3078
#22 0x000000000064a618 in Fcall_interactively
(function=0xffffa82f0f28, record_flag=0x0, keys=0x3bc5be0d) at
callint.c:798
#23 0x0000000000652c2c in funcall_subr (subr=0xb1e0c0
<Scall_interactively>, numargs=3, args=0xffffc5861090) at eval.c:3158
#24 0x00000000006527a0 in Ffuncall (nargs=4, args=0xffffc5861088) at eval.c:3078
#25 0x00000000006a36ac in exec_byte_code (bytestr=0xffffa8f4df3c,
vector=0xffffa8f4dba5, maxdepth=0x36, args_template=0x1006, nargs=1,
args=0xffffc5861618) at bytecode.c:632
#26 0x0000000000652eb8 in fetch_and_exec_byte_code
(fun=0xffffa8f4db75, syms_left=0x1006, nargs=1, args=0xffffc5861610)
at eval.c:3202
#27 0x00000000006532b8 in funcall_lambda (fun=0xffffa8f4db75, nargs=1,
arg_vector=0xffffc5861610) at eval.c:3283
#28 0x00000000006527fc in Ffuncall (nargs=2, args=0xffffc5861608) at eval.c:3082
#29 0x0000000000651f10 in call1 (fn=0x4680, arg1=0xffffa82f0f28) at eval.c:2938
#30 0x000000000058d8e4 in command_loop_1 () at keyboard.c:1507
#31 0x000000000064e604 in internal_condition_case (bfun=0x58cfa4
<command_loop_1>, handlers=0x90, hfun=0x58c438 <cmd_error>) at
eval.c:1492
#32 0x000000000058cbc0 in command_loop_2 (handlers=0x90) at keyboard.c:1135
#33 0x000000000064dcf4 in internal_catch (tag=0xecd0, func=0x58cb98
<command_loop_2>, arg=0x90) at eval.c:1223
#34 0x000000000058cb54 in command_loop () at keyboard.c:1113
#35 0x000000000058beb8 in recursive_edit_1 () at keyboard.c:722
#36 0x000000000058c08c in Frecursive_edit () at keyboard.c:805
#37 0x0000000000588174 in main (argc=2, argv=0xffffc5861b68) at emacs.c:2422

On Wed, Dec 29, 2021 at 6:39 PM Po Lu <[email-masked]> wrote:
>
> [email-masked] writes:
>
> > Steps to reproduce:
> >
> > - run an emacs -Q compiled --with-xwidgets under xwayland on sway
> > - M-x xwidget-webkit-browse-url RET then type in any valid website
> > - right click on any element then select 'Inspect Element'
> > - the xwidget will freeze and be difficult to interact with
> > - C-x k to kill the buffer then emacs will segfault
>
> Please tell the versions of WebKitGTK and GTK+ you have installed, and
> also show the backtrace of the segfault.
>
> On a modern GNU/Linux system, it should be enough to simply say
> "coredumpctl debug emacs", wait for the gdb prompt to appear, and then
> type "bt" followed by RET.
>
> Thanks.