Subject: bug#56967: 29.0.50; Frequent crashes under Wayland

From: Bjoern Bidar <[email-masked]>
Date: Fri, 05 Aug 2022 03:18:17 +0300

> Eli Zaretskii <[email-masked]> writes:

> > Then please run Emacs under a debugger, or attach a debugger to it
> > after you start it, and place a breakpoint in the function
> > Fkill_emacs.  When that breakpoint breaks, produce a backtrace (with
> > the "thread apply all bt" command in GDB) and post that backtrace
> > here.
> 
> Please also place a breakpoint on _exit -- GDK always calls that with
> the exit code 1 that when a display connection is abruptly lost, in
> which case Fkill_emacs has no chance to run.
> 
> Thanks in advance.

Started emacs via systemd as and set both break points as asked.

There you go:

Thread 1 "emacs" hit Breakpoint 2, __GI__exit (status=status@entry=1) at ../
sysdeps/unix/sysv/linux/_exit.c:27
27      {
(gdb) bt
#0  __GI__exit (status=status@entry=1) at ../sysdeps/unix/sysv/linux/_exit.c:
27
#1  0x00007fdac9c825ae in gdk_event_source_check 
(base=base@entry=0x5626b0eb7770) at ../gtk/gdk/wayland/gdkeventsource.c:97
#2  0x00007fdac962411f in g_main_context_check (context=0x5626b71d9be0, 
max_priority=2147483647, fds=<optimized out>, n_fds=<optimized out>) at ../
glib/glib/gmain.c:4035
#3  0x00007fdac9679e5e in g_main_context_iterate.constprop.0 
(context=context@entry=0x5626b71d9be0, block=block@entry=0, 
dispatch=dispatch@entry=0, self=<optimized out>) at ../glib/glib/gmain.c:4208
#4  0x00007fdac962132d in g_main_context_pending (context=0x5626b71d9be0) at 
../glib/glib/gmain.c:4241
#5  0x00005626ab4f3bd2 in pgtk_read_socket.lto_priv ()
#6  0x00005626ab3a3731 in gobble_input ()
#7  0x00005626ab3a3ba5 in unblock_input ()
#8  0x00005626ab4c7f23 in ftcrfont_text_extents.lto_priv ()
#9  0x00005626ab30e4a5 in gui_produce_glyphs ()
#10 0x00005626ab2fcb90 in display_line.lto_priv ()
#11 0x00005626ab2ef021 in try_window ()
#12 0x00005626ab2f6641 in redisplay_window.lto_priv ()
#13 0x00005626ab2e7a1e in redisplay_window_1 ()
#14 0x00005626ab427ecc in internal_condition_case_1 ()
#15 0x00005626ab2ec09a in redisplay_internal.lto_priv ()
#16 0x00005626ab51c025 in redisplay_preserve_echo_area.constprop ()
#17 0x00005626ab49e8d6 in wait_reading_process_output ()
#18 0x00005626ab2b6419 in sit_for ()
#19 0x00005626ab3a0f02 in read_char ()
#20 0x00005626ab3a83f4 in read_key_sequence.lto_priv ()
#21 0x00005626ab39bba8 in command_loop_1.lto_priv ()
#22 0x00005626ab427e37 in internal_condition_case ()
#23 0x00005626ab3939ce in command_loop_2 ()
#24 0x00005626ab427d7a in internal_catch ()
#25 0x00005626ab396cd9 in command_loop.lto_priv ()
#26 0x00005626ab5298ab in recursive_edit_1.isra ()
#27 0x00005626ab397090 in Frecursive_edit ()
#28 0x00005626ab2aac2f in main ()
(gdb)