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:15:08 +0800

Po Lu <[email-masked]> writes:

> Thanks, but this didn't work.  You must run Emacs with "-q" instead of
> "-Q" for X resources passed as command line arguments to take effect.

I just tried with -q, but I do not see any difference.

> gdb --args ./emacs -q -xrm 'Emacs.synchronous: true' -l ~/bug.el
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
Starting program: /home/yantar92/Git/emacs/src/emacs -q -xrm Emacs.synchronous:\ true -l /home/yantar92/bug.el
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff049d640 (LWP 19264)]
[Detaching after vfork from child process 19366]
[Detaching after vfork from child process 19488]
[Detaching after vfork from child process 19604]
[Detaching after vfork from child process 19734]

Thread 1 "emacs" hit Breakpoint 2, x_error_quitter (display=0x55555700bbf0, event=0x7fffffffa1c0) at xterm.c:21573
21573	{
(gdb) bt
#0  x_error_quitter (display=0x55555700bbf0, event=0x7fffffffa1c0) at xterm.c:21573
#1  0x00005555557201b1 in x_error_handler (display=0x55555700bbf0, event=0x7fffffffa1c0) at xterm.c:21561
#2  0x00007ffff7ca3947 in _XError () at /usr/lib64/libX11.so.6
#3  0x00007ffff7ca03e7 in  () at /usr/lib64/libX11.so.6
#4  0x00007ffff7ca0cda in _XEventsQueued () at /usr/lib64/libX11.so.6
#5  0x00007ffff7ca4195 in _XGetRequest () at /usr/lib64/libX11.so.6
#6  0x00007ffff7c99e20 in _XSetClipRectangles () at /usr/lib64/libX11.so.6
#7  0x00007ffff7c9a00e in XSetClipRectangles () at /usr/lib64/libX11.so.6
#8  0x00005555556fcf2a in x_set_clip_rectangles (f=0x555556bf9150, gc=0x55555be10090, rectangles=0x7fffffffb258, n=1) at xterm.c:5136
#9  0x0000555555700124 in x_set_glyph_string_clipping (s=0x7fffffffb1a0) at xterm.c:6504
#10 0x0000555555703c8e in x_draw_image_foreground (s=0x7fffffffb1a0) at xterm.c:8190
#11 0x00005555557047b4 in x_draw_image_glyph_string (s=0x7fffffffb1a0) at xterm.c:8614
#12 0x00005555557052e7 in x_draw_glyph_string (s=0x7fffffffb1a0) at xterm.c:8896
#13 0x000055555563709d in draw_glyphs (w=0x55555db0ac20, x=373, row=0x55555c4b1100, area=TEXT_AREA, start=0, end=13, hl=DRAW_NORMAL_TEXT, overlaps=0) at xdisp.c:29917
#14 0x000055555563ea1b in gui_write_glyphs (w=0x55555db0ac20, updated_row=0x55555c4b1100, start=0x5555574ea040, updated_area=TEXT_AREA, len=13) at xdisp.c:31951
#15 0x00005555555a207e in update_text_area (w=0x55555db0ac20, updated_row=0x55555c4b1100, vpos=0, partial_p=0x7fffffffb67d) at dispnew.c:3944
#16 0x00005555555a2c09 in update_window_line (w=0x55555db0ac20, vpos=0, mouse_face_overwritten_p=0x7fffffffb6c8) at dispnew.c:4202
#17 0x00005555555a13ad in update_window (w=0x55555db0ac20, force_p=true) at dispnew.c:3682
#18 0x00005555555a02b7 in update_frame (f=0x555556bf9150, force_p=true, inhibit_hairy_id_p=false) at dispnew.c:3229
#19 0x000055555560274f in redisplay_internal () at xdisp.c:16675
#20 0x0000555555603358 in redisplay_preserve_echo_area (from_where=12) at xdisp.c:16944
#21 0x00005555558eca26 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:5834
#22 0x00005555555a9238 in sit_for (timeout=make_fixnum(30), reading=true, display_option=1) at dispnew.c:6201
#23 0x000055555576a803 in read_char (commandflag=1, map=XIL(0x55555db9bc23), prev_event=XIL(0), used_mouse_menu=0x7fffffffd3bd, end_time=0x0) at keyboard.c:2835
#24 0x0000555555780154 in read_key_sequence
    (keybuf=0x7fffffffd590, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:9957
#25 0x0000555555765a92 in command_loop_1 () at keyboard.c:1399
#26 0x0000555555859268 in internal_condition_case (bfun=0x5555557655db <command_loop_1>, handlers=XIL(0x90), hfun=0x5555557649a9 <cmd_error>) at eval.c:1478
#27 0x0000555555765194 in command_loop_2 (handlers=XIL(0x90)) at keyboard.c:1140
#28 0x000055555585834b in internal_catch (tag=XIL(0xf5d0), func=0x55555576516a <command_loop_2>, arg=XIL(0x90)) at eval.c:1208
#29 0x0000555555765126 in command_loop () at keyboard.c:1118
#30 0x000055555576444b in recursive_edit_1 () at keyboard.c:727
#31 0x0000555555764677 in Frecursive_edit () at keyboard.c:810
#32 0x000055555575f9dc in main (argc=6, argv=0x7fffffffda38) at emacs.c:2488

Lisp Backtrace:
"redisplay_internal (C function)" (0x0)
(gdb) 
quit
A debugging session is active.

	Inferior 1 [process 19261] will be killed.

Quit anyway? (y or n) y