Subject: Re: bug#72692: Emacs 31.05 (40eecd594ac) get SIGSEGV on Linux (Linux 6.6.45 Kde Wayland)

From: Pip Cet <[email-masked]>
Date: Sun, 18 Aug 2024 08:58:18 +0000

"Eval EXEC" <[email-masked]> writes:

> I'm help to tesing Emacs master branch (commit: 40eecd594ac) on Linux.

Thank you!

> I compile emacs source code by:
>
> ```bash
>
> make extraclean
> ./autogen.sh \
>    && ./configure \
>    --prefix=$(realpath ../emacs-build/$(git branch --show-current | sed
> 's/\//_/g'))\
>    --with-imagemagick --with-xwidgets \
>    --with-modules --with-x-toolkit=gtk3 --without-compress-install \
>    --without-toolkit-scroll-bars --with-native-compilation --with-mailutils\
>    --with-tree-sitter --with-xinput2  \
>    --with-dbus  --with-native-compilation=aot \
>    --with-file-notification=inotify\
>    && make -j30 install
> ```

You might want to consider adding --enable-checking and CFLAGS="-O0 -g3
-ggdb" or equivalent to that until this bug has been found.

> When I using emacs, I got crash, the backtrace is :
>
> ```
>
> line to your configuration file "/home/exec/.config/gdb/gdbinit".
> For more information about this security protection see the
> "Auto-loading safe path" section in the GDB manual.  E.g., run from the
> shell:
>          info "(gdb)Auto-loading safe path"
> warning: File
> "/nix/store/x47hg342iyiw50c1fhqjzz4n0rqy3dhh-isl-0.20/lib/libisl.so.19.1.0-gdb.py"
> auto-loading has been declined by your `auto-load safe-path' set to
> "$debugdir:$datadir/auto-load:/nix/store/40yjzm7r5ki59kkk9423dnwbm86x7pyd-gcc-13.2.0-lib".
> (gdb) c
> The program is not being run.
> (gdb) bt
> #0  0x00007f9eaeea2efc in __pthread_kill_implementation () from
> /nix/store/dbcw19dshdwnxdv5q2g6wldj6syyvq7l-glibc-2.39-52/lib/libc.so.6
> #1  0x00007f9eaee52e86 in raise () from
> /nix/store/dbcw19dshdwnxdv5q2g6wldj6syyvq7l-glibc-2.39-52/lib/libc.so.6
> #2  0x0000000000473791 in terminate_due_to_signal (sig=sig@entry=11,
> backtrace_limit=backtrace_limit@entry=40) at emacs.c:469
> #3  0x0000000000473ccd in handle_fatal_signal (sig=sig@entry=11) at
> sysdep.c:1800
> #4  0x00000000005c4bf8 in deliver_thread_signal (sig=sig@entry=11,
> handler=0x473cc2 <handle_fatal_signal>) at sysdep.c:1792
> #5  0x00000000005c4c7c in deliver_fatal_thread_signal (sig=11) at
> sysdep.c:1812
> #6  handle_sigsegv (sig=11, siginfo=<optimized out>, arg=<optimized
> out>) at sysdep.c:1950
> #7  <signal handler called>
> #8  fontset_find_font (fontset=fontset@entry=0x0, c=c@entry=127802,
> face=face@entry=0x13fec610, charset_id=charset_id@entry=-1,
> fallback=fallback@entry=false)
>      at /home/exec/Projects/git.savannah.gnu.org/git/emacs/src/lisp.h:2127
> #9  0x00000000006dd64d in fontset_font (fontset=fontset@entry=0x0,
> c=c@entry=127802, face=face@entry=0x13fec610, id=-1) at fontset.c:793

Do you still have the core file?

Can you print *face in this stack frame? The relevant gdb commands are
"frame 9" followed by "p *face".

c is ?🌺 .  Are you using that character in your mode line, by any
chance?  Does it show up for you in Emacs?

> I believe the crash is related to the font, but I can't reproduce it. It
> happens about once a day.

What would also be helpful would be to source .gdbinit from your src/
directory, (gdb:
"source/home/exec/Projects/git.savannah.gnu.org/git/emacs/src/.gdbinit"),
then "pp Vfontset_table" to see how large it is.

Thanks!

Pip