Subject: bug#55672: 29.0.50; Emacs crashes when calling start-process-shell-command xdg-open with process-connection-type set to nil

From: Ihor Radchenko <[email-masked]>
Date: Fri, 27 May 2022 17:48:14 +0800

Po Lu <[email-masked]> writes:

> Ihor Radchenko <[email-masked]> writes:
>
>> Starting program: /home/yantar92/Git/emacs/src/emacs -q -xrm Emacs.synchronous:\ true -l /home/yantar92/bug.el
>
> Did you try using -xrm "Emacs.synchronous: true" instead?

No difference.

However, I tried to play around with alternative ways to pass
parameters. Using run -q -xrm '...' appears to work.

The new backtrace:

> gdb ./emacs
GNU gdb (Gentoo 12.1 vanilla) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./emacs...
SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) [answered Y; input not from terminal]
DISPLAY = :0
TERM = xterm-kitty
Breakpoint 1 at 0x2083b5: file emacs.c, line 420.
Breakpoint 2 at 0x1cc1d1: file xterm.c, line 21573.
(gdb) run -q -xrm 'Emacs.synchronous: true'
Starting program: /home/yantar92/Git/emacs/src/emacs -q -xrm 'Emacs.synchronous: true'
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff049d640 (LWP 15165)]
[Detaching after vfork from child process 15505]
[Detaching after vfork from child process 15609]
[Detaching after vfork from child process 15736]
[Detaching after vfork from child process 15825]
[Detaching after vfork from child process 15948]
[Detaching after vfork from child process 16048]
[Detaching after vfork from child process 16155]
[Detaching after vfork from child process 16427]
[Detaching after vfork from child process 16536]
emacs: /var/tmp/portage/x11-libs/cairo-1.16.0-r5/work/cairo-1.16.0/src/cairo-xcb-screen.c:219: _get_screen_index: Assertion `!"reached"' failed.

Thread 1 "emacs" received signal SIGABRT, Aborted.
0x00007ffff42e2ebc in ?? () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff42e2ebc in  () at /lib64/libc.so.6
#1  0x00007ffff4296c72 in raise () at /lib64/libc.so.6
#2  0x00007ffff428146b in abort () at /lib64/libc.so.6
#3  0x00007ffff4281397 in  () at /lib64/libc.so.6
#4  0x00007ffff428fe42 in  () at /lib64/libc.so.6
#5  0x00007ffff6c7b2f1 in  () at /usr/lib64/libcairo.so.2
#6  0x00007ffff6c7dcfe in cairo_xcb_surface_create () at /usr/lib64/libcairo.so.2
#7  0x00005555556fb83b in x_begin_cr_clip (f=0x5555571d4dd0, gc=0x0) at xterm.c:4681
#8  0x00005555556fd699 in x_clear_window (f=0x5555571d4dd0) at xterm.c:5408
#9  0x0000555555706751 in x_clear_frame (f=0x5555571d4dd0) at xterm.c:9297
#10 0x00005555556dae3a in clear_frame (f=0x5555571d4dd0) at terminal.c:141
#11 0x000055555559ff07 in redraw_frame (f=0x5555571d4dd0) at dispnew.c:3115
#12 0x00005555555f701b in clear_garbaged_frames () at xdisp.c:12739
#13 0x00005555555f7340 in echo_area_display (update_frame_p=true) at xdisp.c:12791
#14 0x00005555555f3109 in message3_nolog (m=XIL(0x5555598603f4)) at xdisp.c:11752
#15 0x00005555555f2db1 in message3 (m=XIL(0x5555598603f4)) at xdisp.c:11682
#16 0x00005555558498d4 in Fmessage (nargs=2, args=0x7fffffffae88) at editfns.c:2881
#17 0x000055555585dfc8 in funcall_subr (subr=0x555555e83120 <Smessage>, numargs=2, args=0x7fffffffae88) at eval.c:3008
#18 0x000055555585d863 in funcall_general (fun=XIL(0x555555e83125), numargs=2, args=0x7fffffffae88) at eval.c:2889
#19 0x000055555585db40 in Ffuncall (nargs=3, args=0x7fffffffae80) at eval.c:2943
#20 0x00007fffef4744c7 in F7365727665722d65786563757465_server_execute_0 () at /home/yantar92/.emacs.d/eln-cache/29.0.50-9c7bac46/server-0cc44189-d75986a8.eln
#21 0x000055555585df1e in funcall_subr (subr=0x55555703a310, numargs=7, args=0x7ffff049e038) at eval.c:2993
#22 0x00005555558c613f in exec_byte_code (fun=XIL(0x5555570354dd), args_template=0, nargs=0, args=0x7fffffffb5c8) at bytecode.c:809
#23 0x000055555585e15c in fetch_and_exec_byte_code (fun=XIL(0x5555570354dd), args_template=0, nargs=0, args=0x7fffffffb5c8) at eval.c:3030
#24 0x000055555585e65b in funcall_lambda (fun=XIL(0x5555570354dd), nargs=0, arg_vector=0x7fffffffb5c8) at eval.c:3102
#25 0x000055555585d8af in funcall_general (fun=XIL(0x5555570354dd), numargs=0, args=0x7fffffffb5c8) at eval.c:2893
#26 0x000055555585db40 in Ffuncall (nargs=1, args=0x7fffffffb5c0) at eval.c:2943
#27 0x00007fffef47106f in F7365727665722d657865637574652d636f6e74696e756174696f6e_server_execute_continuation_0 ()
    at /home/yantar92/.emacs.d/eln-cache/29.0.50-9c7bac46/server-0cc44189-d75986a8.eln
#28 0x000055555585dd9d in funcall_subr (subr=0x55555703a260, numargs=1, args=0x7fffffffb7e8) at eval.c:2981
#29 0x000055555585d863 in funcall_general (fun=XIL(0x55555703a265), numargs=1, args=0x7fffffffb7e8) at eval.c:2889
#30 0x000055555585db40 in Ffuncall (nargs=2, args=0x7fffffffb7e0) at eval.c:2943
#31 0x00007fffef4723c9 in F7365727665722d70726f636573732d66696c746572_server_process_filter_0 () at /home/yantar92/.emacs.d/eln-cache/29.0.50-9c7bac46/server-0cc44189-d75986a8.eln
#32 0x000055555585ddc1 in funcall_subr (subr=0x55555703a2b8, numargs=2, args=0x7fffffffb9b8) at eval.c:2983
#33 0x000055555585d863 in funcall_general (fun=XIL(0x55555703a2bd), numargs=2, args=0x7fffffffb9b8) at eval.c:2889
#34 0x000055555585db40 in Ffuncall (nargs=3, args=0x7fffffffb9b0) at eval.c:2943
#35 0x000055555585cd73 in Fapply (nargs=2, args=0x7fffffffba60) at eval.c:2614
#36 0x000055555585d49d in apply1 (fn=XIL(0x10a5af0), arg=XIL(0x5555574e4d93)) at eval.c:2830
#37 0x00005555558ed2e2 in read_process_output_call (fun_and_args=XIL(0x5555574e4da3)) at process.c:5999
#38 0x0000555555859349 in internal_condition_case_1
    (bfun=0x5555558ed249 <read_process_output_call>, arg=XIL(0x5555574e4da3), handlers=XIL(0x90), hfun=0x5555558ed2e4 <read_process_output_error_handler>) at eval.c:1502
#39 0x00005555558edd04 in read_and_dispose_of_process_output
    (p=0x555557c8e308, chars=0x7fffffffbb70 "-env GCC_SPECS= -env GSETTINGS_BACKEND=dconf -env LC_COLLATE=C -env XDG_DATA_DIRS=/usr/local/share:/usr/share -env PATH=/home/yantar92/.pyenv/bin:/home/yantar92/.local/bin:/home/yantar92/.local/bin:/u"..., nbytes=819, coding=0x555555fee820) at process.c:6223
#40 0x00005555558ed8c4 in read_process_output (proc=XIL(0x555557c8e30d), channel=10) at process.c:6133
#41 0x00005555558ec953 in wait_reading_process_output (time_limit=30, nsecs=0, read_kbd=-1, do_display=true, wait_for_cell=XIL(0), wait_proc=0x0, just_wait_proc=0) at process.c:5817
#42 0x00005555555a9238 in sit_for (timeout=make_fixnum(30), reading=true, display_option=1) at dispnew.c:6201
#43 0x000055555576a803 in read_char (commandflag=1, map=XIL(0x5555574e5743), prev_event=XIL(0), used_mouse_menu=0x7fffffffd3ed, end_time=0x0) at keyboard.c:2835
#44 0x0000555555780154 in read_key_sequence
--Type <RET> for more, q to quit, c to continue without paging--c
    (keybuf=0x7fffffffd5c0, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:9957
#45 0x0000555555765a92 in command_loop_1 () at keyboard.c:1399
#46 0x0000555555859268 in internal_condition_case (bfun=0x5555557655db <command_loop_1>, handlers=XIL(0x90), hfun=0x5555557649a9 <cmd_error>) at eval.c:1478
#47 0x0000555555765194 in command_loop_2 (handlers=XIL(0x90)) at keyboard.c:1140
#48 0x000055555585834b in internal_catch (tag=XIL(0xf5d0), func=0x55555576516a <command_loop_2>, arg=XIL(0x90)) at eval.c:1208
#49 0x0000555555765126 in command_loop () at keyboard.c:1118
#50 0x000055555576444b in recursive_edit_1 () at keyboard.c:727
#51 0x0000555555764677 in Frecursive_edit () at keyboard.c:810
#52 0x000055555575f9dc in main (argc=4, argv=0x7fffffffda68) at emacs.c:2488

Lisp Backtrace:
"message" (0xffffae88)
"server-execute" (0xf049e038)
0x570354d8 PVEC_COMPILED
"server-execute-continuation" (0xffffb7e8)
"server-process-filter" (0xffffb9b8)
(gdb) 
quit
A debugging session is active.

	Inferior 1 [process 15152] will be killed.

Quit anyway? (y or n) y