Subject: Re: bug#70059: 30.0.50; c-ts-mode crashes emacs

From: Felix <[email-masked]>
Date: Fri, 29 Mar 2024 11:51:06 +0100

Eli Zaretskii <[email-masked]> writes:

>> Date: Thu, 28 Mar 2024 21:36:54 +0100
>> From:  Felix via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <[email-masked]>
>>
>>
>> I can reproduce it like this:
>> run 'emacs -Q'
>> open a C source file.
>> M-x c-ts-mode
>> wait a few seconds, and emacs crashes.
>
> Doesn't happen here, but see below.
>
>> In GNU Emacs 30.0.50 (build 4, x86_64-pc-linux-gnu, GTK+ Version
>>  3.24.41, cairo version 1.18.0) of 2024-03-28
>> Repository revision: de9e913f9e2a1e01e5d091a553e98d75404a2246
>> Repository branch: makepkg
>                      ^^^^^^^
> What is this branch?  I don't see such a branch in the Emacs Git
> repository; did I miss something?  If this is your local branch, does
> it have any local changes which could affect this issue?
>

I build emacs from the arch linux AUR, it's not differrent from the master branch

>> System Description: Arch Linux
>>
>> Configured using:
>>  'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
>>  --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
>>  --with-modules --without-m17n-flt --without-gconf --enable-autodepend
>>  --enable-link-time-optimization --with-native-compilation=yes
>>  --with-xinput2 --with-pgtk --without-xaw3d --with-cairo-xcb
>>  --with-sound=no --with-xwidgets --with-tree-sitter --without-gpm
>>  --without-compress-install
>>  '--program-transform-name=s/\([ec]tags\)/\1.emacs/'
>>  'CFLAGS=-march=native -mtune=generic -O3 -pipe -fno-plt -fexceptions
>>  -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
>>  -fstack-clash-protection -fcf-protection'
>>  LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'
>>
>> Configured features:
>> ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
>> LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
>> PDUMPER PGTK PNG RSVG SECCOMP SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
>> TREE_SITTER WEBP XIM XWIDGETS GTK3 ZLIB
>
> I see your build is with native-compilation; mine is without.  The
> backtrace you posted:
>
>> #11 0x000062534cfba688 in shut_down_emacs ()
>> #12 0x000062534cfba3ba in terminate_due_to_signal ()
>> #13 0x000062534cff5be4 in handle_sigsegv ()
>> #14 0x0000723f608fd770 in <signal handler called> () at /usr/lib/libc.so.6
>> #15 0x000062534d063429 in process_mark_stack ()
>> #16 0x000062534d1649f1 in traverse_intervals_noorder ()
>> #17 0x000062534d063e5e in process_mark_stack ()
>> #18 0x000062534d063ceb in process_mark_stack ()
>> #19 0x000062534d063ceb in process_mark_stack ()
>> #20 0x000062534d064fab in mark_char_table ()
>> #21 0x000062534d0650f6 in mark_char_table ()
>> #22 0x000062534d063c0c in process_mark_stack ()
>> #23 0x000062534d063ceb in process_mark_stack ()
>> #24 0x000062534d063ceb in process_mark_stack ()
>> #25 0x000062534d063ceb in process_mark_stack ()
>> #26 0x000062534d0663be in garbage_collect ()
>> #27 0x000062534d11e30b in exec_byte_code ()
>> #28 0x000062534d0a5406 in Ffuncall ()
>> #29 0x000062534d0a58df in Fapply ()
>> #30 0x000062534d137961 in read_process_output_call ()
>> #31 0x000062534d0ae619 in internal_condition_case_1 ()
>> #32 0x000062534d137820 in exec_sentinel ()
>> #33 0x000062534d135d2f in status_notify ()
>> #34 0x000062534d13b00c in wait_reading_process_output ()

>
> indicates that Emacs crashed after some sub-process exited, the
> process sentinel was called, and that caused us to run some Lips and
> perform GC.  Any idea what that subprocess was? could it be the async
> native-compilation of some Lisp file?  Can you try building without
> native-compilation and see if the problem happens there as well?

I rebuild it without native-compilation, and it still crashes.
Backtrace:

#0  0x000077b79c65c32c in ??? () at /usr/lib/libc.so.6
#1  0x000077b79c60b6c8 in raise () at /usr/lib/libc.so.6
#2  0x00005a5a428f94a2 in terminate_due_to_signal ()
#3  0x00005a5a42933c23 in emacs_abort ()
#4  0x00005a5a429ec268 in signal_or_quit ()
#5  0x00005a5a429eb422 in Fsignal ()
#6  0x00005a5a429eb401 in xsignal ()
#7  0x00005a5a429e9aa2 in xsignal2 ()
#8  0x00005a5a429c0865 in wrong_type_argument ()
#9  0x00005a5a42965e1f in Fexpand_file_name ()
#10 0x00005a5a42b3d200 in Fdo_auto_save.7873 ()
#11 0x00005a5a428f9738 in shut_down_emacs ()
#12 0x00005a5a428f946a in terminate_due_to_signal ()
#13 0x00005a5a42935924 in handle_sigsegv ()
#14 0x000077b79c60b770 in <signal handler called> () at /usr/lib/libc.so.6
#15 0x00005a5a429a57f6 in process_mark_stack ()
#16 0x00005a5a429a677b in mark_char_table ()
#17 0x00005a5a429a68c6 in mark_char_table ()
#18 0x00005a5a429a55bd in process_mark_stack ()
#19 0x00005a5a429a677b in mark_char_table ()
#20 0x00005a5a429a68c6 in mark_char_table ()
#21 0x00005a5a429a55bd in process_mark_stack ()
#22 0x00005a5a429a677b in mark_char_table ()
#23 0x00005a5a429a68c6 in mark_char_table ()
#24 0x00005a5a429a55bd in process_mark_stack ()
#25 0x00005a5a429a677b in mark_char_table ()
#26 0x00005a5a429a68c6 in mark_char_table ()
#27 0x00005a5a429a55bd in process_mark_stack ()
#28 0x00005a5a429a569b in process_mark_stack ()
#29 0x00005a5a429a569b in process_mark_stack ()
#30 0x00005a5a429a569b in process_mark_stack ()
#31 0x00005a5a429a7b8e in garbage_collect ()
#32 0x00005a5a429e76e7 in Ffuncall ()
#33 0x00005a5a42a094f7 in mapcar1 ()
#34 0x00005a5a42a091bf in Fmapconcat ()
#35 0x00005a5a42ac9d90 in Ftreesit_pattern_expand ()
#36 0x00005a5a429e87b3 in funcall_subr ()
#37 0x00005a5a429e77f6 in Ffuncall ()
#38 0x00005a5a42a094f7 in mapcar1 ()
#39 0x00005a5a42a091bf in Fmapconcat ()
#40 0x00005a5a42ac9d90 in Ftreesit_pattern_expand ()
#41 0x00005a5a429e87b3 in funcall_subr ()
#42 0x00005a5a429e77f6 in Ffuncall ()
#43 0x00005a5a42a094f7 in mapcar1 ()
#44 0x00005a5a42a091bf in Fmapconcat ()
#45 0x00005a5a42aca243 in treesit_ensure_query_compiled ()
#46 0x00005a5a42aca5c0 in Ftreesit_query_capture ()
#47 0x00005a5a429e880a in funcall_subr ()
#48 0x00005a5a42a606de in exec_byte_code ()
#49 0x00005a5a429e77f6 in Ffuncall ()
#50 0x00005a5a429f1f5c in Frun_hook_wrapped ()
#51 0x00005a5a42a606de in exec_byte_code ()
#52 0x00005a5a429e77f6 in Ffuncall ()
#53 0x00005a5a429f0ad7 in internal_condition_case_n ()
#54 0x00005a5a427f2ef7 in handle_stop ()
#55 0x00005a5a42803822 in start_display ()
#56 0x00005a5a4282b922 in try_window ()
#57 0x00005a5a42826f1a in redisplay_window ()
#58 0x00005a5a4283a927 in redisplay_window_0 ()
#59 0x00005a5a429f09b9 in internal_condition_case_1 ()
#60 0x00005a5a42821a55 in redisplay_windows ()
#61 0x00005a5a42819a36 in redisplay_internal ()
#62 0x00005a5a42907548 in read_char ()
#63 0x00005a5a42903deb in read_key_sequence ()
#64 0x00005a5a429019f9 in command_loop_1 ()
#65 0x00005a5a429f0937 in internal_condition_case ()
#66 0x00005a5a4290085e in command_loop_2 ()
#67 0x00005a5a429ef7f1 in internal_catch ()
#68 0x00005a5a4290080c in command_loop ()
#69 0x00005a5a42900676 in recursive_edit_1 ()
#70 0x00005a5a429178d7 in Frecursive_edit ()
#71 0x00005a5a428fe4fa in main ()
>
> Also, do you see c-ts-mode's .eln file in your eln-cache directory?

Yes it's there when emacs is compiled with native-compilation

>
> Andrea, can you try reproducing this?