Subject: Re: bug#71176: 30.0.50; Segmentation fault (SIGSEGV) in TTY+emacsclient, default_face is nil

From: Daniel Clemente <[email-masked]>
Date: Sat, 25 May 2024 11:04:18 +0000

I found out how to reproduce this and a possible cause, see
"garbage-collection-messages" below.

> > 6819      return default_face->id;
>
> Do you use face-remapping?  Is face-remapping-alist non-nil when this
> happens?  If so, can you show the value of Vface_remapping_alist?

I don't use it, and it's nil when the SIGSEGV happens.
(gdb) p Vface_remapping_alist
$1 = XIL(0)

>> warning: Source file is more recent than executable.
>        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> This is not a good sign: you have edited your sources after the Emacs
> binary was produced, so some of the information in the backtrace and
> the GDB session might be inaccurate or even incorrect.

My source branch was at yesterday's HEAD, sorry. There were only small
recent changes in xfaces.c/xdisp.c. I now switched my branch to the commit
I used to build Emacs (b82a003544c607b5c54bab13870d52), from 2 weeks ago.
I also recompiled using -O2 instead of -O3, thanks.

With that, and by opening+closing many frames in succession (details at
bug#71177), I made it crash. Backtrace attached below.

I was able to consistently reproduce the crash by running this command (30
seconds is always enough to reproduce it, but it also happens after less
than 10 secons, so you may change the 30 to a lower number):

for j in `seq 30`; do for i in `seq 10`; do urxvt -e emacsclient '-nw' '-e'
'(dired "~")' &; done; sleep 1 && killall emacsclient; done

I couldn't reproduce it under emacs -Q
The minimal .emacs needed to reproduce it has these 2 lines:

(setq garbage-collection-messages t)
(set-face-foreground 'default "#bbb")

If I comment any of them, it doesn't crash.

So it seems it's GC-related. When GC runs while some face is being set up
AND the GC tries to display a message (by using that face?), it crashes.

Backtrace:

process server <274> no longer connected to pipe; closed it
process server <275> no longer connected to pipe; closed it
process server <276> no longer connected to pipe; closed it
process server <306> no longer connected to pipe; closed it
process server <307> no longer connected to pipe; closed it
process server <308> no longer connected to pipe; closed it
process server <309> no longer connected to pipe; closed it

Program received signal SIGSEGV, Segmentation fault.
face_at_buffer_position (w=0x555561b87370, pos=1,
endptr=endptr@entry=0x7fffffff9618,
limit=<optimized out>, mouse=mouse@entry=false, base_face_id=<optimized
out>, attr_filter=<optimized out>) at xfaces.c:6819
6819      return default_face->id;
(gdb) bt full
#0  face_at_buffer_position (w=0x555561b87370, pos=1,
endptr=endptr@entry=0x7fffffff9618,
limit=<optimized out>, mouse=mouse@entry=false, base_face_id=<optimized
out>, attr_filter=<optimized out>) at xfaces.c:6819
        f = 0x555561b86ec0
        attrs = {XIL(0x28), XIL(0) <repeats 19 times>}
        prop = XIL(0)
        position = make_fixnum(1)
        i = <optimized out>
        noverlays = <optimized out>
        overlay_vec = 0x7fffffff9380
        endpos = 22
        propname = XIL(0x5d00)
        limit1 = <optimized out>
        end = <optimized out>
        default_face = 0x0
        sa_avail = <optimized out>
        sa_count = {
          bytes = 1024
        }
#1  0x00005555555a2124 in face_at_pos (it=0x7fffffff96c0, attr_filter=0) at
xdisp.c:4670
        next_stop = 22
        base_face_id = <optimized out>
        bufpos = <optimized out>
        i = <optimized out>
        from_overlay = <optimized out>
#2  0x00005555555b6392 in handle_face_prop (it=0x7fffffff96c0) at
xdisp.c:4771
        count = <optimized out>
        new_face_id = <optimized out>
#3  0x00005555555aeb76 in handle_stop (it=0x7fffffff96c0) at xdisp.c:4136
        handled = HANDLED_NORMALLY
        handle_overlay_change_p = true
        p = 0x5555557c13f0 <it_props+16>
#4  0x00005555555aef66 in reseat (it=<optimized out>, pos=...,
force_p=<optimized out>) at xdisp.c:7813
        original_pos = <optimized out>
#5  0x00005555555af639 in init_iterator (it=<optimized out>, w=<optimized
out>, charpos=<optimized out>, bytepos=<optimized out>, row=<optimized
out>, base_face_id=<optimized out>) at xdisp.c:3507
        remapped_base_face_id = <optimized out>
        body_width = <optimized out>
        body_height = <optimized out>
#6  0x00005555555ba347 in resize_mini_window (w=w@entry=0x555561b87370,
exact_p=exact_p@entry=false) at xdisp.c:12987
        unit = 1
        max_height = <optimized out>
        old_current_buffer = 0x0
        it = {
          window = XIL(0x555561b87375),
          w = 0x555561b87370,
          f = 0x555561b86ec0,
          method = GET_FROM_BUFFER,
          stop_charpos = 1,
          prev_stop = 1,
          base_level_stop = 0,
          end_charpos = 22,
          medium_narrowing_begv = 0,
          medium_narrowing_zv = 0,
          large_narrowing_begv = 0,
          large_narrowing_zv = 0,
          s = 0x0,
          string_nchars = 0,
          multibyte_p = true,
          tab_line_p = false,
          header_line_p = false,
          string_from_display_prop_p = false,
          string_from_prefix_prop_p = false,
--Type <RET> for more, q to quit, c to continue without paging--
          from_disp_prop_p = false,
          ellipsis_p = false,
          avoid_cursor_p = false,
          dp = 0x55555621b660,
          dpvec = 0x0,
          dpend = 0x0,
          dpvec_char_len = 0,
          dpvec_face_id = 0,
          saved_face_id = 0,
          ctl_chars = {XIL(0) <repeats 16 times>},
          start = {
            pos = {
              charpos = 1,
              bytepos = 1
            },
            overlay_string_index = -1,
            string_pos = {
              charpos = -1,
              bytepos = -1
            },
            dpvec_index = -1
          },
          current = {
            pos = {
              charpos = 1,
              bytepos = 1
            },
            overlay_string_index = -1,
            string_pos = {
              charpos = -1,
              bytepos = -1
            },
            dpvec_index = -1
          },
          n_overlay_strings = 0,
          overlay_strings_charpos = 0,
          overlay_strings = {XIL(0) <repeats 16 times>},
          string_overlays = {XIL(0) <repeats 16 times>},
          string = XIL(0),
          from_overlay = XIL(0),
          stack = {{
              string = XIL(0),
              string_nchars = 0,
              end_charpos = 0,
              stop_charpos = 0,
              prev_stop = 0,
              base_level_stop = 0,
              cmp_it = {
                stop_pos = 0,
                id = 0,
                ch = 0,
                rule_idx = 0,
                lookback = 0,
                nglyphs = 0,
                reversed_p = false,
                parent_it = 0x0,
                charpos = 0,
                nchars = 0,
                nbytes = 0,
                from = 0,
--Type <RET> for more, q to quit, c to continue without paging--
                to = 0,
                width = 0
              },
              face_id = 0,
              u = {
                image = {
                  object = XIL(0),
                  slice = {
                    x = XIL(0),
                    y = XIL(0),
                    width = XIL(0),
                    height = XIL(0)
                  },
                  image_id = 0
                },
                stretch = {
                  object = XIL(0)
                },
                xwidget = {
                  object = XIL(0)
                }
              },
              position = {
                charpos = 0,
                bytepos = 0
              },
              current = {
                pos = {
                  charpos = 0,
                  bytepos = 0
                },
                overlay_string_index = 0,
                string_pos = {
                  charpos = 0,
                  bytepos = 0
                },
                dpvec_index = 0
              },
              from_overlay = XIL(0),
              area = LEFT_MARGIN_AREA,
              method = GET_FROM_BUFFER,
              paragraph_embedding = NEUTRAL_DIR,
              multibyte_p = false,
              string_from_display_prop_p = false,
              string_from_prefix_prop_p = false,
              display_ellipsis_p = false,
              avoid_cursor_p = false,
              bidi_p = false,
              from_disp_prop_p = false,
              line_wrap = TRUNCATE,
              voffset = 0,
              space_width = XIL(0),
              font_height = XIL(0)
            }, {
              string = XIL(0),
              string_nchars = 0,
              end_charpos = 0,
              stop_charpos = 0,
              prev_stop = 0,
              base_level_stop = 0,
--Type <RET> for more, q to quit, c to continue without paging--
              cmp_it = {
                stop_pos = 0,
                id = 0,
                ch = 0,
                rule_idx = 0,
                lookback = 0,
                nglyphs = 0,
                reversed_p = false,
                parent_it = 0x0,
                charpos = 0,
                nchars = 0,
                nbytes = 0,
                from = 0,
                to = 0,
                width = 0
              },
              face_id = 0,
              u = {
                image = {
                  object = XIL(0),
                  slice = {
                    x = XIL(0),
                    y = XIL(0),
                    width = XIL(0),
                    height = XIL(0)
                  },
                  image_id = 0
                },
                stretch = {
                  object = XIL(0)
                },
                xwidget = {
                  object = XIL(0)
                }
              },
              position = {
                charpos = 0,
                bytepos = 0
              },
              current = {
                pos = {
                  charpos = 0,
                  bytepos = 0
                },
                overlay_string_index = 0,
                string_pos = {
                  charpos = 0,
                  bytepos = 0
                },
                dpvec_index = 0
              },
              from_overlay = XIL(0),
              area = LEFT_MARGIN_AREA,
              method = GET_FROM_BUFFER,
              paragraph_embedding = NEUTRAL_DIR,
              multibyte_p = false,
              string_from_display_prop_p = false,
              string_from_prefix_prop_p = false,
              display_ellipsis_p = false,
              avoid_cursor_p = false,
--Type <RET> for more, q to quit, c to continue without paging--
              bidi_p = false,
              from_disp_prop_p = false,
              line_wrap = TRUNCATE,
              voffset = 0,
              space_width = XIL(0),
              font_height = XIL(0)
            }, {
              string = XIL(0),
              string_nchars = 0,
              end_charpos = 0,
              stop_charpos = 0,
              prev_stop = 0,
              base_level_stop = 0,
              cmp_it = {
                stop_pos = 0,
                id = 0,
                ch = 0,
                rule_idx = 0,
                lookback = 0,
                nglyphs = 0,
                reversed_p = false,
                parent_it = 0x0,
                charpos = 0,
                nchars = 0,
                nbytes = 0,
                from = 0,
                to = 0,
                width = 0
              },
              face_id = 0,
              u = {
                image = {
                  object = XIL(0),
                  slice = {
                    x = XIL(0),
                    y = XIL(0),
                    width = XIL(0),
                    height = XIL(0)
                  },
                  image_id = 0
                },
                stretch = {
                  object = XIL(0)
                },
                xwidget = {
                  object = XIL(0)
                }
              },
              position = {
                charpos = 0,
                bytepos = 0
              },
              current = {
                pos = {
                  charpos = 0,
                  bytepos = 0
                },
                overlay_string_index = 0,
                string_pos = {
                  charpos = 0,
--Type <RET> for more, q to quit, c to continue without paging--
                  bytepos = 0
                },
                dpvec_index = 0
              },
              from_overlay = XIL(0),
              area = LEFT_MARGIN_AREA,
              method = GET_FROM_BUFFER,
              paragraph_embedding = NEUTRAL_DIR,
              multibyte_p = false,
              string_from_display_prop_p = false,
              string_from_prefix_prop_p = false,
              display_ellipsis_p = false,
              avoid_cursor_p = false,
              bidi_p = false,
              from_disp_prop_p = false,
              line_wrap = TRUNCATE,
              voffset = 0,
              space_width = XIL(0),
              font_height = XIL(0)
            }, {
              string = XIL(0),
              string_nchars = 0,
              end_charpos = 0,
              stop_charpos = 0,
              prev_stop = 0,
              base_level_stop = 0,
              cmp_it = {
                stop_pos = 0,
                id = 0,
                ch = 0,
                rule_idx = 0,
                lookback = 0,
                nglyphs = 0,
                reversed_p = false,
                parent_it = 0x0,
                charpos = 0,
                nchars = 0,
                nbytes = 0,
                from = 0,
                to = 0,
                width = 0
              },
              face_id = 0,
              u = {
                image = {
                  object = XIL(0),
                  slice = {
                    x = XIL(0),
                    y = XIL(0),
                    width = XIL(0),
                    height = XIL(0)
                  },
                  image_id = 0
                },
                stretch = {
                  object = XIL(0)
                },
                xwidget = {
                  object = XIL(0)
                }
--Type <RET> for more, q to quit, c to continue without paging--
              },
              position = {
                charpos = 0,
                bytepos = 0
              },
              current = {
                pos = {
                  charpos = 0,
                  bytepos = 0
                },
                overlay_string_index = 0,
                string_pos = {
                  charpos = 0,
                  bytepos = 0
                },
                dpvec_index = 0
              },
              from_overlay = XIL(0),
              area = LEFT_MARGIN_AREA,
              method = GET_FROM_BUFFER,
              paragraph_embedding = NEUTRAL_DIR,
              multibyte_p = false,
              string_from_display_prop_p = false,
              string_from_prefix_prop_p = false,
              display_ellipsis_p = false,
              avoid_cursor_p = false,
              bidi_p = false,
              from_disp_prop_p = false,
              line_wrap = TRUNCATE,
              voffset = 0,
              space_width = XIL(0),
              font_height = XIL(0)
            }, {
              string = XIL(0),
              string_nchars = 0,
              end_charpos = 0,
              stop_charpos = 0,
              prev_stop = 0,
              base_level_stop = 0,
              cmp_it = {
                stop_pos = 0,
                id = 0,
                ch = 0,
                rule_idx = 0,
                lookback = 0,
                nglyphs = 0,
                reversed_p = false,
                parent_it = 0x0,
                charpos = 0,
                nchars = 0,
                nbytes = 0,
                from = 0,
                to = 0,
                width = 0
              },
              face_id = 0,
              u = {
                image = {
                  object = XIL(0),
                  slice = {
--Type <RET> for more, q to quit, c to continue without paging--
                    x = XIL(0),
                    y = XIL(0),
                    width = XIL(0),
                    height = XIL(0)
                  },
                  image_id = 0
                },
                stretch = {
                  object = XIL(0)
                },
                xwidget = {
                  object = XIL(0)
                }
              },
              position = {
                charpos = 0,
                bytepos = 0
              },
              current = {
                pos = {
                  charpos = 0,
                  bytepos = 0
                },
                overlay_string_index = 0,
                string_pos = {
                  charpos = 0,
                  bytepos = 0
                },
                dpvec_index = 0
              },
              from_overlay = XIL(0),
              area = LEFT_MARGIN_AREA,
              method = GET_FROM_BUFFER,
              paragraph_embedding = NEUTRAL_DIR,
              multibyte_p = false,
              string_from_display_prop_p = false,
              string_from_prefix_prop_p = false,
              display_ellipsis_p = false,
              avoid_cursor_p = false,
              bidi_p = false,
              from_disp_prop_p = false,
              line_wrap = TRUNCATE,
              voffset = 0,
              space_width = XIL(0),
              font_height = XIL(0)
            }},
          sp = 0,
          selective = 0,
          what = IT_CHARACTER,
          face_id = 0,
          selective_display_ellipsis_p = true,
          ctl_arrow_p = true,
          face_box_p = false,
          start_of_box_run_p = false,
          end_of_box_run_p = false,
          overlay_strings_at_end_processed_p = false,
          ignore_overlay_strings_at_pos_p = false,
          glyph_not_available_p = false,
          starts_in_middle_of_char_p = false,
          face_before_selective_p = false,
--Type <RET> for more, q to quit, c to continue without paging--
          constrain_row_ascent_descent_p = false,
          line_number_produced_p = false,
          line_wrap = WINDOW_WRAP,
          base_face_id = 0,
          c = 0,
          len = 0,
          cmp_it = {
            stop_pos = 0,
            id = -1,
            ch = 0,
            rule_idx = 0,
            lookback = 0,
            nglyphs = 0,
            reversed_p = false,
            parent_it = 0x7fffffff96c0,
            charpos = 0,
            nchars = 0,
            nbytes = 0,
            from = 0,
            to = 0,
            width = 0
          },
          char_to_display = 0,
          glyphless_method = GLYPHLESS_DISPLAY_THIN_SPACE,
          image_id = 0,
          xwidget = 0x0,
          slice = {
            x = XIL(0),
            y = XIL(0),
            width = XIL(0),
            height = XIL(0)
          },
          space_width = XIL(0),
          voffset = 0,
          tab_width = 4,
          font_height = XIL(0),
          object = XIL(0x5555593b83c5),
          position = {
            charpos = 1,
            bytepos = 1
          },
          truncation_pixel_width = 0,
          continuation_pixel_width = 1,
          first_visible_x = 0,
          last_visible_x = 190,
          last_visible_y = 1,
          extra_line_spacing = 0,
          max_extra_line_spacing = 0,
          override_ascent = -1,
          override_descent = 0,
          override_boff = 0,
          glyph_row = 0x0,
          area = TEXT_AREA,
          nglyphs = 1,
          pixel_width = 0,
          ascent = 0,
          descent = 0,
          max_ascent = 0,
          max_descent = 0,
          phys_ascent = 0,
--Type <RET> for more, q to quit, c to continue without paging--
          phys_descent = 0,
          max_phys_ascent = 0,
          max_phys_descent = 0,
          current_x = 0,
          wrap_prefix_width = 0,
          continuation_lines_width = 0,
          eol_pos = {
            charpos = 0,
            bytepos = 0
          },
          current_y = 0,
          first_vpos = 0,
          vpos = 0,
          hpos = 0,
          lnum = 0,
          lnum_bytepos = 0,
          lnum_width = 0,
          lnum_pixel_width = 0,
          pt_lnum = 0,
          stretch_adjust = 0,
          left_user_fringe_bitmap = 0,
          right_user_fringe_bitmap = 0,
          left_user_fringe_face_id = 0,
          right_user_fringe_face_id = 0,
          bidi_p = true,
          bidi_it = {
            bytepos = 1,
            charpos = 1,
            ch = 0,
            nchars = -1,
            ch_len = 0,
            type = NEUTRAL_B,
            type_after_wn = NEUTRAL_B,
            orig_type = NEUTRAL_B,
            resolved_level = 0 '\000',
            isolate_level = 0 '\000',
            invalid_levels = 0,
            invalid_isolates = 0,
            prev = {
              charpos = 0,
              type = UNKNOWN_BT,
              orig_type = UNKNOWN_BT
            },
            last_strong = {
              charpos = 0,
              type = UNKNOWN_BT,
              orig_type = UNKNOWN_BT
            },
            next_for_neutral = {
              charpos = -1,
              type = UNKNOWN_BT,
              orig_type = UNKNOWN_BT
            },
            prev_for_neutral = {
              charpos = -1,
              type = UNKNOWN_BT,
              orig_type = UNKNOWN_BT
            },
            next_for_ws = {
              charpos = 0,
--Type <RET> for more, q to quit, c to continue without paging--
              type = UNKNOWN_BT,
              orig_type = UNKNOWN_BT
            },
            bracket_pairing_pos = -1,
            bracket_enclosed_type = UNKNOWN_BT,
            next_en_pos = 0,
            next_en_type = UNKNOWN_BT,
            sos = L2R,
            scan_dir = 0,
            disp_pos = -1,
            disp_prop = 0,
            stack_idx = 0,
            level_stack = {{
                next_for_neutral_pos = 0,
                next_for_neutral_type = 0,
                last_strong_type = 0,
                prev_for_neutral_type = 0,
                level = 0 '\000',
                flags = 0 '\000'
              } <repeats 128 times>},
            string = {
              lstring = XIL(0),
              s = 0x0,
              schars = 0,
              bufpos = 0,
              from_disp_str = false,
              unibyte = false
            },
            w = 0x555561b87370,
            paragraph_dir = NEUTRAL_DIR,
            separator_limit = -1,
            first_elt = true,
            new_paragraph = true,
            frame_window_p = false
          },
          paragraph_embedding = L2R,
          min_width_property = XIL(0),
          min_width_start = 0
        }
        height = <optimized out>
        start = <optimized out>
        windows_height = 33
        f = <optimized out>
        old_height = <optimized out>
#7  0x00005555555c358c in display_echo_area_1 (a1=0x555561b87370,
a2=<optimized out>) at xdisp.c:12874
        w = 0x555561b87370
        window = <optimized out>
        start = <optimized out>
        window_height_changed_p = <optimized out>
        itdata = <optimized out>
#8  0x00005555555a90a2 in with_echo_area_buffer (w=w@entry=0x555561b87370,
which=which@entry=0, fn=fn@entry=0x5555555c3550 <display_echo_area_1>,
a1=a1@entry=0x555561b87370, a2=a2@entry=XIL(0)) at xdisp.c:12646
        buffer = <optimized out>
        this_one = <optimized out>
        the_other = <optimized out>
        clear_buffer_p = false
        rc = <optimized out>
        count = <optimized out>
#9  0x00005555555c6d3d in display_echo_area (w=0x555561b87370) at
xdisp.c:12841
        no_message_p = false
        window_height_changed_p = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        count = <optimized out>
        i = false
        no_message_p = <optimized out>
        window_height_changed_p = <optimized out>
        count = <optimized out>
        i = <optimized out>
#10 echo_area_display (update_frame_p=<optimized out>) at xdisp.c:13400
        mini_window = XIL(0x555561b87375)
        w = 0x555561b87370
        f = 0x555561b86ec0
        window_height_changed_p = false
        sf = <optimized out>
#11 0x00005555555c71b5 in message3_nolog (m=<optimized out>) at
xdisp.c:12348
        mini_window = <optimized out>
        frame = XIL(0x555561b86ec5)
        f = 0x555561b86ec0
        sf = <optimized out>
#12 0x000055555569b9f1 in garbage_collect () at alloc.c:6587
        tail = <optimized out>
        buffer = <optimized out>
        stack_top_variable = 0 '\000'
        message_p = true
        count = <optimized out>
        start = <optimized out>
        tot_before = 18446744073709551615
        visitor = <optimized out>
#13 0x000055555569bba1 in maybe_garbage_collect () at alloc.c:6507
No locals.
#14 0x00005555556bd7e5 in maybe_gc () at /w/emacs/src/lisp.h:5895
No locals.
#15 Ffuncall (nargs=4, args=0x7fffffffadd0) at eval.c:3068
        count = <optimized out>
        val = <optimized out>
#16 0x00007ffff4c0bea7 in
F7474792d636f6c6f722d617070726f78696d617465_tty_color_approximate_0 () from
/opt/dc/emacs/bin/../lib/emacs/30.0.50/native-lisp/30.0.50-03350a95/preloaded/tty-colors-b7804baf-58861526.eln
No symbol table info available.
#17 0x00005555556bd746 in Ffuncall (nargs=3, args=0x7fffffffaec0) at
eval.c:3073
        count = <optimized out>
        val = <optimized out>
#18 0x00007ffff4c0c826 in F7474792d636f6c6f722d64657363_tty_color_desc_0 ()
from
/opt/dc/emacs/bin/../lib/emacs/30.0.50/native-lisp/30.0.50-03350a95/preloaded/tty-colors-b7804baf-58861526.eln
No symbol table info available.
#19 0x00005555556bd746 in Ffuncall (nargs=nargs@entry=3,
args=args@entry=0x7fffffffaf50)
at eval.c:3073
        count = <optimized out>
        val = <optimized out>
#20 0x0000555555627ad9 in tty_lookup_color (f=f@entry=0x555561b86ec0,
color=XIL(0x555561203a94), tty_color=tty_color@entry=0x7fffffffaff0,
std_color=std_color@entry=0x0) at xfaces.c:1050
        frame = XIL(0x555561b86ec5)
        color_desc = <optimized out>
#21 0x000055555562f4cc in tty_defined_color (f=0x555561b86ec0,
color_name=0x5555560eae00 "#bbb", color_def=0x7fffffffaff0,
alloc=<optimized out>, _makeIndex=<optimized out>) at xfaces.c:1113
        status = true
#22 0x0000555555627676 in load_color2 (f=f@entry=0x555561b86ec0,
face=face@entry=0x555561099eb0, name=name@entry=XIL(0x5555561b36e4),
target_index=target_index@entry=LFACE_FOREGROUND_INDEX, color=color@entry
=0x7fffffffaff0)
    at xfaces.c:1260
No locals.
#23 0x0000555555627987 in load_color (target_index=LFACE_FOREGROUND_INDEX,
name=XIL(0x5555561b36e4), face=0x555561099eb0, f=0x555561b86ec0) at
xfaces.c:1323
        color = {
          pixel = 18446744073709551615,
          red = 0,
          green = 0,
          blue = 0
        }
#24 map_tty_color (f=f@entry=0x555561b86ec0, face=face@entry=0x555561099eb0,
color=XIL(0x5555561b36e4), idx=idx@entry=LFACE_FOREGROUND_INDEX,
defaulted=<optimized out>) at xfaces.c:6502
        frame = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        def = <optimized out>
        foreground_p = true
        default_pixel = <optimized out>
        pixel = <optimized out>
#25 0x000055555562974b in realize_tty_face (cache=0x555562b885c0,
attrs=0x7fffffffb080) at xfaces.c:6650
        weight = <optimized out>
        face_colors_defaulted = false
        face = 0x555561099eb0
        slant = <optimized out>
        underline = <optimized out>
        f = <optimized out>
        face = <optimized out>
        weight = <optimized out>
        slant = <optimized out>
        underline = <optimized out>
        face_colors_defaulted = <optimized out>
        f = <optimized out>
        underline_color_defaulted = <optimized out>
        keyword = <optimized out>
        value = <optimized out>
        underline_color_defaulted = <optimized out>
        tem = <optimized out>
#26 realize_face (cache=cache@entry=0x555562b885c0,
attrs=attrs@entry=0x7fffffffb080,
former_face_id=former_face_id@entry=0) at xfaces.c:6054
        face = <optimized out>
#27 0x000055555562b86c in realize_default_face (f=0x555561b86ec0) at
xfaces.c:5962
        c = 0x555562b885c0
        lface = XIL(0x5555635e798d)
        attrs = {XIL(0x5d00), XIL(0x555561203a74), XIL(0x555561203a74),
XIL(0xb130), make_fixnum(1), XIL(0xb130), XIL(0xb130), XIL(0), XIL(0),
XIL(0x5555561b36e4), XIL(0x5555561c4e64), XIL(0), XIL(0), XIL(0), XIL(0),
XIL(0xf720), XIL(0),
          XIL(0), XIL(0xf720), XIL(0)}
        face = <optimized out>
        c = <optimized out>
        lface = <optimized out>
        attrs = <optimized out>
        face = <optimized out>
        frame = <optimized out>
        color = <optimized out>
        color = <optimized out>
#28 realize_basic_faces (f=f@entry=0x555561b86ec0) at xfaces.c:5819
        success_p = false
#29 0x000055555562f77d in update_face_from_frame_parameter
(f=f@entry=0x555561b86ec0,
param=param@entry=XIL(0x2790), new_value=new_value@entry=XIL(0x5555561c4e64))
at xfaces.c:3797
        frame = XIL(0x555561b86ec5)
        face = XIL(0x49e0)
        lface = <optimized out>
#30 0x000055555559d784 in Fmodify_frame_parameters
(frame=frame@entry=XIL(0x555561b86ec5),
alist=<optimized out>, alist@entry=XIL(0x7fffffffb223)) at frame.c:3586
        length = <optimized out>
        i = 0
        parms = 0x7fffffffb180
        values = 0x7fffffffb188
        sa_avail = <optimized out>
        sa_count = {
          bytes = 704
        }
        f = 0x555561b86ec0
        prop = XIL(0x2790)
        val = XIL(0x5555561c4e64)
#31 0x000055555562e352 in Finternal_set_lisp_face_attribute
(face=XIL(0x49e0), attr=<optimized out>, value=<optimized out>,
frame=XIL(0x555561b86ec5)) at xfaces.c:3750
        arg = XIL(0x7fffffffb223)
        param = <optimized out>
        lface = <optimized out>
        old_value = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        prop_index = <optimized out>
        f = <optimized out>
#32 0x00007ffff16dc752 in
F7365742d666163652d617474726962757465_set_face_attribute_0 () from
/opt/dc/emacs/bin/../lib/emacs/30.0.50/native-lisp/30.0.50-03350a95/preloaded/faces-b9447c93-32c2609b.eln
No symbol table info available.
#33 0x00005555556bd746 in Ffuncall (nargs=5, args=0x7fffffffb390) at
eval.c:3073
        count = <optimized out>
        val = <optimized out>
#34 0x00007ffff16e5292 in
F666163652d7365742d61667465722d6672616d652d64656661756c74_face_set_after_frame_default_0
() from
/opt/dc/emacs/bin/../lib/emacs/30.0.50/native-lisp/30.0.50-03350a95/preloaded/faces-b9447c93-32c2609b.eln
No symbol table info available.
#35 0x00005555556bd746 in Ffuncall (nargs=3, args=0x7fffffffb490) at
eval.c:3073
        count = <optimized out>
        val = <optimized out>
#36 0x00007ffff16e5989 in
F7474792d6372656174652d6672616d652d776974682d6661636573_tty_create_frame_with_faces_0
() from
/opt/dc/emacs/bin/../lib/emacs/30.0.50/native-lisp/30.0.50-03350a95/preloaded/faces-b9447c93-32c2609b.eln
No symbol table info available.
#37 0x000055555570547d in exec_byte_code (fun=<optimized out>,
args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>)
at /w/emacs/src/lisp.h:2242
        call_nargs = 1
        call_fun = <optimized out>
        count1 = <optimized out>
        val = <optimized out>
        call_args = 0x7ffff05ff0d0
        original_fun = XIL(0x2aaa9c0ceed0)
        op = 1
        type = <optimized out>
        targets = {0x55555558aafc <exec_byte_code[cold]>, 0x5555557057d5
<exec_byte_code+1813>, 0x5555557057d0 <exec_byte_code+1808>, 0x5555557057cb
<exec_byte_code+1803>, 0x55555570527c <exec_byte_code+444>,
          0x55555570527c <exec_byte_code+444>, 0x555555705797
<exec_byte_code+1751>, 0x555555705763 <exec_byte_code+1699>, 0x55555570744f
<exec_byte_code+9103>, 0x55555570744a <exec_byte_code+9098>, 0x555555707445
<exec_byte_code+9093>,
          0x555555707440 <exec_byte_code+9088>, 0x5555557052ab
<exec_byte_code+491>, 0x5555557052b0 <exec_byte_code+496>, 0x555555707432
<exec_byte_code+9074>, 0x555555707454 <exec_byte_code+9108>, 0x5555557072a7
<exec_byte_code+8679>,
          0x5555557072a2 <exec_byte_code+8674>, 0x55555570729d
<exec_byte_code+8669>, 0x555555707298 <exec_byte_code+8664>, 0x55555570521a
<exec_byte_code+346>, 0x555555705220 <exec_byte_code+352>, 0x55555570727c
<exec_byte_code+8636>,
          0x55555570728a <exec_byte_code+8650>, 0x55555570722f
<exec_byte_code+8559>, 0x55555570722a <exec_byte_code+8554>, 0x555555707225
<exec_byte_code+8549>, 0x555555707220 <exec_byte_code+8544>, 0x555555705539
<exec_byte_code+1145>,
          0x555555705540 <exec_byte_code+1152>, 0x555555707242
<exec_byte_code+8578>, 0x555555707234 <exec_byte_code+8564>, 0x5555557071ff
<exec_byte_code+8511>, 0x5555557071fa <exec_byte_code+8506>, 0x5555557071f5
<exec_byte_code+8501>,
          0x5555557071f0 <exec_byte_code+8496>, 0x555555705306
<exec_byte_code+582>, 0x555555705310 <exec_byte_code+592>, 0x555555707212
<exec_byte_code+8530>, 0x555555707204 <exec_byte_code+8516>, 0x5555557071cf
<exec_byte_code+8463>,
          0x5555557071ca <exec_byte_code+8458>, 0x5555557071c5
<exec_byte_code+8453>, 0x5555557071c0 <exec_byte_code+8448>, 0x5555557054f5
<exec_byte_code+1077>, 0x5555557054f8 <exec_byte_code+1080>, 0x5555557071e2
<exec_byte_code+8482>,
          0x5555557071d4 <exec_byte_code+8468>, 0x555555706e2e
<exec_byte_code+7534>, 0x555555706e5b <exec_byte_code+7579>, 0x555555706ec8
<exec_byte_code+7688>, 0x55555558aafc <exec_byte_code[cold]>,
          0x55555558aafc <exec_byte_code[cold]>, 0x55555558aafc
<exec_byte_code[cold]>, 0x55555558aafc <exec_byte_code[cold]>,
0x55555558aafc <exec_byte_code[cold]>, 0x555555706cc0
<exec_byte_code+7168>,
          0x555555706c54 <exec_byte_code+7060>, 0x555555706c18
<exec_byte_code+7000>, 0x555555706bdc <exec_byte_code+6940>, 0x555555706b9e
<exec_byte_code+6878>, 0x55555570731a <exec_byte_code+8794>, 0x5555557072e1
<exec_byte_code+8737>,
          0x555555706b73 <exec_byte_code+6835>, 0x5555557073c3
<exec_byte_code+8963>, 0x5555557072ac <exec_byte_code+8684>, 0x555555706b3a
<exec_byte_code+6778>, 0x555555706b11 <exec_byte_code+6737>, 0x555555706ad8
<exec_byte_code+6680>,
          0x555555706aa2 <exec_byte_code+6626>, 0x555555706a68
<exec_byte_code+6568>, 0x555555706a03 <exec_byte_code+6467>, 0x55555570697e
<exec_byte_code+6334>, 0x5555557068f2 <exec_byte_code+6194>, 0x5555557068c9
<exec_byte_code+6153>,
          0x5555557068a0 <exec_byte_code+6112>, 0x555555706867
<exec_byte_code+6055>, 0x55555570682e <exec_byte_code+5998>, 0x5555557067f5
<exec_byte_code+5941>, 0x5555557067b8 <exec_byte_code+5880>, 0x555555706785
<exec_byte_code+5829>,
          0x555555706752 <exec_byte_code+5778>, 0x55555570671f
<exec_byte_code+5727>, 0x55555570668e <exec_byte_code+5582>, 0x555555706639
<exec_byte_code+5497>, 0x5555557065ef <exec_byte_code+5423>, 0x5555557065a2
<exec_byte_code+5346>,
          0x555555706555 <exec_byte_code+5269>, 0x555555706508
<exec_byte_code+5192>, 0x5555557064bb <exec_byte_code+5115>, 0x55555570646a
<exec_byte_code+5034>, 0x555555706414 <exec_byte_code+4948>, 0x5555557063c3
<exec_byte_code+4867>,
          0x555555706372 <exec_byte_code+4786>, 0x555555706321
<exec_byte_code+4705>, 0x5555557062cf <exec_byte_code+4623>, 0x5555557061f3
<exec_byte_code+4403>, 0x555555705583 <exec_byte_code+1219>, 0x5555557061ca
<exec_byte_code+4362>,
          0x55555570619c <exec_byte_code+4316>, 0x55555570611d
<exec_byte_code+4189>, 0x5555557060da <exec_byte_code+4122>, 0x5555557060b1
<exec_byte_code+4081>, 0x555555706086 <exec_byte_code+4038>, 0x55555570605b
<exec_byte_code+3995>,
          0x555555706028 <exec_byte_code+3944>, 0x555555705ffd
<exec_byte_code+3901>, 0x55555558aafc <exec_byte_code[cold]>,
0x555555705fd2 <exec_byte_code+3858>, 0x555555705fa7 <exec_byte_code+3815>,
          0x555555705f7c <exec_byte_code+3772>, 0x555555705f51
<exec_byte_code+3729>, 0x555555705f26 <exec_byte_code+3686>, 0x555555705efd
<exec_byte_code+3645>, 0x555555705583 <exec_byte_code+1219>,
          0x55555558aafc <exec_byte_code[cold]>, 0x555555705ebf
<exec_byte_code+3583>, 0x555555705e96 <exec_byte_code+3542>, 0x555555705e6d
<exec_byte_code+3501>, 0x555555705e34 <exec_byte_code+3444>,
          0x555555705dfb <exec_byte_code+3387>, 0x555555705dd2
<exec_byte_code+3346>, 0x555555705da9 <exec_byte_code+3305>, 0x555555705d70
<exec_byte_code+3248>, 0x555555705d37 <exec_byte_code+3191>, 0x555555705cfe
<exec_byte_code+3134>,
          0x555555705cd3 <exec_byte_code+3091>, 0x555555705caa
<exec_byte_code+3050>, 0x55555558aafc <exec_byte_code[cold]>,
0x555555706fb8 <exec_byte_code+7928>, 0x55555570714d <exec_byte_code+8333>,
          0x5555557073f8 <exec_byte_code+9016>, 0x555555707113
<exec_byte_code+8275>, 0x5555557070dc <exec_byte_code+8220>, 0x5555557070a5
<exec_byte_code+8165>, 0x55555570700a <exec_byte_code+8010>, 0x555555706fec
<exec_byte_code+7980>,
          0x555555707250 <exec_byte_code+8592>, 0x555555706f9a
<exec_byte_code+7898>, 0x555555706f3e <exec_byte_code+7806>, 0x555555706f10
<exec_byte_code+7760>, 0x555555706ed0 <exec_byte_code+7696>, 0x555555706de0
<exec_byte_code+7456>,
          0x555555706da3 <exec_byte_code+7395>, 0x555555706d60
<exec_byte_code+7328>, 0x555555706d0a <exec_byte_code+7242>, 0x55555558aafc
<exec_byte_code[cold]>, 0x555555705c6d <exec_byte_code+2989>,
          0x555555705c44 <exec_byte_code+2948>, 0x555555705c1b
<exec_byte_code+2907>, 0x555555705bf2 <exec_byte_code+2866>, 0x555555705bc9
<exec_byte_code+2825>, 0x555555705b90 <exec_byte_code+2768>, 0x555555705b57
<exec_byte_code+2711>,
          0x555555705b1e <exec_byte_code+2654>, 0x555555705ae5
<exec_byte_code+2597>, 0x555555705a94 <exec_byte_code+2516>, 0x555555705a5b
<exec_byte_code+2459>, 0x555555705a22 <exec_byte_code+2402>, 0x5555557059f9
<exec_byte_code+2361>,
          0x55555570599b <exec_byte_code+2267>, 0x555555705939
<exec_byte_code+2169>, 0x555555705906 <exec_byte_code+2118>, 0x5555557058d3
<exec_byte_code+2067>, 0x5555557058a3 <exec_byte_code+2019>, 0x55555570627e
<exec_byte_code+4542>,
          0x555555706236 <exec_byte_code+4470>, 0x55555570583d
<exec_byte_code+1917>, 0x5555557057da <exec_byte_code+1818>, 0x55555558aafc
<exec_byte_code[cold]>, 0x55555558aafc <exec_byte_code[cold]>,
          0x55555558aafc <exec_byte_code[cold]>, 0x55555558aafc
<exec_byte_code[cold]>, 0x55555558aafc <exec_byte_code[cold]>,
0x55555558aafc <exec_byte_code[cold]>, 0x555555706a2c
<exec_byte_code+6508>,
          0x5555557066e3 <exec_byte_code+5667>, 0x555555706160
<exec_byte_code+4256>, 0x555555705727 <exec_byte_code+1639>, 0x5555557056eb
<exec_byte_code+1579>, 0x55555558aafc <exec_byte_code[cold]>,
          0x55555558aafc <exec_byte_code[cold]>, 0x5555557056bc
<exec_byte_code+1532>, 0x555555705663 <exec_byte_code+1443>, 0x55555558aafc
<exec_byte_code[cold]>, 0x55555558aafc <exec_byte_code[cold]>,
          0x55555558aafc <exec_byte_code[cold]>, 0x55555558aafc
<exec_byte_code[cold]>, 0x55555558aafc <exec_byte_code[cold]>,
0x55555558aafc <exec_byte_code[cold]>, 0x55555558aafc
<exec_byte_code[cold]>,
          0x55555558aafc <exec_byte_code[cold]>, 0x555555705633
<exec_byte_code+1395> <repeats 64 times>}
        quitcounter = 1 '\001'
        bc = 0x555555c862b0 <main_thread+496>
--Type <RET> for more, q to quit, c to continue without paging--
        top = <optimized out>
        pc = <optimized out>
        bytestr = <optimized out>
        vector = <optimized out>
        maxdepth = <optimized out>
        const_length = <optimized out>
        bytestr_length = <optimized out>
        vectorp = 0x7ffff1e015f8
        max_stack = <optimized out>
        frame_base = <optimized out>
        fp = <optimized out>
        bytestr_data = <optimized out>
        rest = <optimized out>
        mandatory = <optimized out>
        nonrest = <optimized out>
        pushedargs = <optimized out>
        result = <optimized out>
#38 0x00005555556bd746 in Ffuncall (nargs=nargs@entry=2,
args=args@entry=0x7ffff05ff048)
at eval.c:3073
        count = <optimized out>
        val = <optimized out>
#39 0x00005555556bdce2 in Fapply (nargs=2, args=0x7ffff05ff048) at
eval.c:2702
        i = <optimized out>
        funcall_nargs = <optimized out>
        funcall_args = 0x0
        spread_arg = <optimized out>
        fun = XIL(0x7ffff1e015a5)
        sa_avail = 16384
        sa_count = {
          bytes = 512
        }
        numargs = <optimized out>
        retval = <optimized out>
#40 0x000055555570547d in exec_byte_code (fun=<optimized out>,
args_template=<optimized out>, nargs=<optimized out>, args=<optimized out>)
at /w/emacs/src/lisp.h:2242
        call_nargs = 2
        call_fun = <optimized out>
        count1 = <optimized out>
        val = <optimized out>
        call_args = 0x7ffff05ff048
        original_fun = XIL(0x2370)
        op = 2
        type = <optimized out>
        targets = {0x55555558aafc <exec_byte_code[cold]>, 0x5555557057d5
<exec_byte_code+1813>, 0x5555557057d0 <exec_byte_code+1808>, 0x5555557057cb
<exec_byte_code+1803>, 0x55555570527c <exec_byte_code+444>,
          0x55555570527c <exec_byte_code+444>, 0x555555705797
<exec_byte_code+1751>, 0x555555705763 <exec_byte_code+1699>, 0x55555570744f
<exec_byte_code+9103>, 0x55555570744a <exec_byte_code+9098>, 0x555555707445
<exec_byte_code+9093>,
          0x555555707440 <exec_byte_code+9088>, 0x5555557052ab
<exec_byte_code+491>, 0x5555557052b0 <exec_byte_code+496>, 0x555555707432
<exec_byte_code+9074>, 0x555555707454 <exec_byte_code+9108>, 0x5555557072a7
<exec_byte_code+8679>,
          0x5555557072a2 <exec_byte_code+8674>, 0x55555570729d
<exec_byte_code+8669>, 0x555555707298 <exec_byte_code+8664>, 0x55555570521a
<exec_byte_code+346>, 0x555555705220 <exec_byte_code+352>, 0x55555570727c
<exec_byte_code+8636>,
          0x55555570728a <exec_byte_code+8650>, 0x55555570722f
<exec_byte_code+8559>, 0x55555570722a <exec_byte_code+8554>, 0x555555707225
<exec_byte_code+8549>, 0x555555707220 <exec_byte_code+8544>, 0x555555705539
<exec_byte_code+1145>,
          0x555555705540 <exec_byte_code+1152>, 0x555555707242
<exec_byte_code+8578>, 0x555555707234 <exec_byte_code+8564>, 0x5555557071ff
<exec_byte_code+8511>, 0x5555557071fa <exec_byte_code+8506>, 0x5555557071f5
<exec_byte_code+8501>,
          0x5555557071f0 <exec_byte_code+8496>, 0x555555705306
<exec_byte_code+582>, 0x555555705310 <exec_byte_code+592>, 0x555555707212
<exec_byte_code+8530>, 0x555555707204 <exec_byte_code+8516>, 0x5555557071cf
<exec_byte_code+8463>,
          0x5555557071ca <exec_byte_code+8458>, 0x5555557071c5
<exec_byte_code+8453>, 0x5555557071c0 <exec_byte_code+8448>, 0x5555557054f5
<exec_byte_code+1077>, 0x5555557054f8 <exec_byte_code+1080>, 0x5555557071e2
<exec_byte_code+8482>,
          0x5555557071d4 <exec_byte_code+8468>, 0x555555706e2e
<exec_byte_code+7534>, 0x555555706e5b <exec_byte_code+7579>, 0x555555706ec8
<exec_byte_code+7688>, 0x55555558aafc <exec_byte_code[cold]>,
          0x55555558aafc <exec_byte_code[cold]>, 0x55555558aafc
<exec_byte_code[cold]>, 0x55555558aafc <exec_byte_code[cold]>,
0x55555558aafc <exec_byte_code[cold]>, 0x555555706cc0
<exec_byte_code+7168>,
          0x555555706c54 <exec_byte_code+7060>, 0x555555706c18
<exec_byte_code+7000>, 0x555555706bdc <exec_byte_code+6940>, 0x555555706b9e
<exec_byte_code+6878>, 0x55555570731a <exec_byte_code+8794>, 0x5555557072e1
<exec_byte_code+8737>,
          0x555555706b73 <exec_byte_code+6835>, 0x5555557073c3
<exec_byte_code+8963>, 0x5555557072ac <exec_byte_code+8684>, 0x555555706b3a
<exec_byte_code+6778>, 0x555555706b11 <exec_byte_code+6737>, 0x555555706ad8
<exec_byte_code+6680>,
          0x555555706aa2 <exec_byte_code+6626>, 0x555555706a68
<exec_byte_code+6568>, 0x555555706a03 <exec_byte_code+6467>, 0x55555570697e
<exec_byte_code+6334>, 0x5555557068f2 <exec_byte_code+6194>, 0x5555557068c9
<exec_byte_code+6153>,
          0x5555557068a0 <exec_byte_code+6112>, 0x555555706867
<exec_byte_code+6055>, 0x55555570682e <exec_byte_code+5998>, 0x5555557067f5
<exec_byte_code+5941>, 0x5555557067b8 <exec_byte_code+5880>, 0x555555706785
<exec_byte_code+5829>,
          0x555555706752 <exec_byte_code+5778>, 0x55555570671f
<exec_byte_code+5727>, 0x55555570668e <exec_byte_code+5582>, 0x555555706639
<exec_byte_code+5497>, 0x5555557065ef <exec_byte_code+5423>, 0x5555557065a2
<exec_byte_code+5346>,
          0x555555706555 <exec_byte_code+5269>, 0x555555706508
<exec_byte_code+5192>, 0x5555557064bb <exec_byte_code+5115>, 0x55555570646a
<exec_byte_code+5034>, 0x555555706414 <exec_byte_code+4948>, 0x5555557063c3
<exec_byte_code+4867>,
          0x555555706372 <exec_byte_code+4786>, 0x555555706321
<exec_byte_code+4705>, 0x5555557062cf <exec_byte_code+4623>, 0x5555557061f3
<exec_byte_code+4403>, 0x555555705583 <exec_byte_code+1219>, 0x5555557061ca
<exec_byte_code+4362>,
          0x55555570619c <exec_byte_code+4316>, 0x55555570611d
<exec_byte_code+4189>, 0x5555557060da <exec_byte_code+4122>, 0x5555557060b1
<exec_byte_code+4081>, 0x555555706086 <exec_byte_code+4038>, 0x55555570605b
<exec_byte_code+3995>,
          0x555555706028 <exec_byte_code+3944>, 0x555555705ffd
<exec_byte_code+3901>, 0x55555558aafc <exec_byte_code[cold]>,
0x555555705fd2 <exec_byte_code+3858>, 0x555555705fa7 <exec_byte_code+3815>,
--Type <RET> for more, q to quit, c to continue without paging--
          0x555555705f7c <exec_byte_code+3772>, 0x555555705f51
<exec_byte_code+3729>, 0x555555705f26 <exec_byte_code+3686>, 0x555555705efd
<exec_byte_code+3645>, 0x555555705583 <exec_byte_code+1219>,
          0x55555558aafc <exec_byte_code[cold]>, 0x555555705ebf
<exec_byte_code+3583>, 0x555555705e96 <exec_byte_code+3542>, 0x555555705e6d
<exec_byte_code+3501>, 0x555555705e34 <exec_byte_code+3444>,
          0x555555705dfb <exec_byte_code+3387>, 0x555555705dd2
<exec_byte_code+3346>, 0x555555705da9 <exec_byte_code+3305>, 0x555555705d70
<exec_byte_code+3248>, 0x555555705d37 <exec_byte_code+3191>, 0x555555705cfe
<exec_byte_code+3134>,
          0x555555705cd3 <exec_byte_code+3091>, 0x555555705caa
<exec_byte_code+3050>, 0x55555558aafc <exec_byte_code[cold]>,
0x555555706fb8 <exec_byte_code+7928>, 0x55555570714d <exec_byte_code+8333>,
          0x5555557073f8 <exec_byte_code+9016>, 0x555555707113
<exec_byte_code+8275>, 0x5555557070dc <exec_byte_code+8220>, 0x5555557070a5
<exec_byte_code+8165>, 0x55555570700a <exec_byte_code+8010>, 0x555555706fec
<exec_byte_code+7980>,
          0x555555707250 <exec_byte_code+8592>, 0x555555706f9a
<exec_byte_code+7898>, 0x555555706f3e <exec_byte_code+7806>, 0x555555706f10
<exec_byte_code+7760>, 0x555555706ed0 <exec_byte_code+7696>, 0x555555706de0
<exec_byte_code+7456>,
          0x555555706da3 <exec_byte_code+7395>, 0x555555706d60
<exec_byte_code+7328>, 0x555555706d0a <exec_byte_code+7242>, 0x55555558aafc
<exec_byte_code[cold]>, 0x555555705c6d <exec_byte_code+2989>,
          0x555555705c44 <exec_byte_code+2948>, 0x555555705c1b
<exec_byte_code+2907>, 0x555555705bf2 <exec_byte_code+2866>, 0x555555705bc9
<exec_byte_code+2825>, 0x555555705b90 <exec_byte_code+2768>, 0x555555705b57
<exec_byte_code+2711>,
          0x555555705b1e <exec_byte_code+2654>, 0x555555705ae5
<exec_byte_code+2597>, 0x555555705a94 <exec_byte_code+2516>, 0x555555705a5b
<exec_byte_code+2459>, 0x555555705a22 <exec_byte_code+2402>, 0x5555557059f9
<exec_byte_code+2361>,
          0x55555570599b <exec_byte_code+2267>, 0x555555705939
<exec_byte_code+2169>, 0x555555705906 <exec_byte_code+2118>, 0x5555557058d3
<exec_byte_code+2067>, 0x5555557058a3 <exec_byte_code+2019>, 0x55555570627e
<exec_byte_code+4542>,
          0x555555706236 <exec_byte_code+4470>, 0x55555570583d
<exec_byte_code+1917>, 0x5555557057da <exec_byte_code+1818>, 0x55555558aafc
<exec_byte_code[cold]>, 0x55555558aafc <exec_byte_code[cold]>,
          0x55555558aafc <exec_byte_code[cold]>, 0x55555558aafc
<exec_byte_code[cold]>, 0x55555558aafc <exec_byte_code[cold]>,
0x55555558aafc <exec_byte_code[cold]>, 0x555555706a2c
<exec_byte_code+6508>,
          0x5555557066e3 <exec_byte_code+5667>, 0x555555706160
<exec_byte_code+4256>, 0x555555705727 <exec_byte_code+1639>, 0x5555557056eb
<exec_byte_code+1579>, 0x55555558aafc <exec_byte_code[cold]>,
          0x55555558aafc <exec_byte_code[cold]>, 0x5555557056bc
<exec_byte_code+1532>, 0x555555705663 <exec_byte_code+1443>, 0x55555558aafc
<exec_byte_code[cold]>, 0x55555558aafc <exec_byte_code[cold]>,
          0x55555558aafc <exec_byte_code[cold]>, 0x55555558aafc
<exec_byte_code[cold]>, 0x55555558aafc <exec_byte_code[cold]>,
0x55555558aafc <exec_byte_code[cold]>, 0x55555558aafc
<exec_byte_code[cold]>,
          0x55555558aafc <exec_byte_code[cold]>, 0x555555705633
<exec_byte_code+1395> <repeats 64 times>}
        quitcounter = 1 '\001'
        bc = 0x555555c862b0 <main_thread+496>
        top = <optimized out>
        pc = <optimized out>
        bytestr = <optimized out>
        vector = <optimized out>
        maxdepth = <optimized out>
        const_length = <optimized out>
        bytestr_length = <optimized out>
        vectorp = 0x7ffff1e014b8
        max_stack = <optimized out>
        frame_base = <optimized out>
        fp = <optimized out>
        bytestr_data = <optimized out>
        rest = <optimized out>
        mandatory = <optimized out>
        nonrest = <optimized out>
        pushedargs = <optimized out>
        result = <optimized out>
#41 0x00005555556bd746 in Ffuncall (nargs=2, args=0x7fffffffb760) at
eval.c:3073
        count = <optimized out>
        val = <optimized out>
#42 0x00007ffff17326c6 in F6d616b652d6672616d65_make_frame_0 () from
/opt/dc/emacs/bin/../lib/emacs/30.0.50/native-lisp/30.0.50-03350a95/preloaded/frame-b40fc590-beeb287d.eln
No symbol table info available.
#43 0x00005555556bd746 in Ffuncall (nargs=2, args=0x7fffffffb860) at
eval.c:3073
        count = <optimized out>
        val = <optimized out>
#44 0x00007fffee2ad67e in
F7365727665722d2d6372656174652d6672616d65_server__create_frame_0 () from
/home/dc/.emacs.d/eln-cache/30.0.50-03350a95/server-0cc44189-48d76bed.eln
No symbol table info available.
#45 0x00005555556bd746 in Ffuncall (nargs=4, args=0x7fffffffba10) at
eval.c:3073
        count = <optimized out>
        val = <optimized out>
#46 0x00007fffee2acfa4 in
F7365727665722d6372656174652d7474792d6672616d65_server_create_tty_frame_0
() from
/home/dc/.emacs.d/eln-cache/30.0.50-03350a95/server-0cc44189-48d76bed.eln
No symbol table info available.
#47 0x00005555556bd746 in Ffuncall (nargs=5, args=0x7fffffffbb70) at
eval.c:3073
        count = <optimized out>
        val = <optimized out>
#48 0x00007fffee2af64c in
F7365727665722d70726f636573732d66696c746572_server_process_filter_0 () from
/home/dc/.emacs.d/eln-cache/30.0.50-03350a95/server-0cc44189-48d76bed.eln
No symbol table info available.
#49 0x00005555556bd746 in Ffuncall (nargs=nargs@entry=3,
args=0x7fffffffbc40) at eval.c:3073
        count = <optimized out>
        val = <optimized out>
#50 0x00005555556bdab0 in Fapply (nargs=nargs@entry=2,
args=args@entry=0x7fffffffbce0)
at eval.c:2745
        i = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        funcall_nargs = 3
        funcall_args = <optimized out>
        spread_arg = <optimized out>
        fun = <optimized out>
        sa_avail = <optimized out>
        sa_count = {
          bytes = 256
        }
        numargs = <optimized out>
        retval = <optimized out>
#51 0x00005555556bde21 in apply1 (fn=<optimized out>, arg=<optimized out>)
at eval.c:2961
No locals.
#52 0x00005555556bbff4 in internal_condition_case_1
(bfun=bfun@entry=0x555555711970
<read_process_output_call>, arg=XIL(0x5555624732e3),
handlers=handlers@entry=XIL(0x90),

    hfun=hfun@entry=0x5555557118b0 <read_process_output_error_handler>) at
eval.c:1617
        val = <optimized out>
        c = 0x555555e02ec0
#53 0x00005555557143e5 in read_and_dispose_of_process_output
(coding=<optimized out>, nbytes=3565,
    chars=0x7fffffffbd30 "-env MAIL=/var/mail/dc -env LANGUAGE=en_US:en
-env GTK_CSD=0 -env WORKON_HOME=/home/dc/.virtualenvs -env USER=dc -env
XDG_SEAT=seat0 -env VAGRANT_DISABLE_VBOXSYMLINKCREATE=1 -env
SSH_AGENT_PID=1016 -e"...,
    p=0x555561b8b8a0) at process.c:6354
        outstream = XIL(0x224b890)
        text = <optimized out>
        outer_running_asynch_code = false
        waiting = -1
        outstream = <optimized out>
        text = <optimized out>
        outer_running_asynch_code = <optimized out>
        waiting = <optimized out>
        tem = <optimized out>
#54 read_process_output (proc=proc@entry=XIL(0x555561b8b8a5),
channel=channel@entry=61) at process.c:6264
        nbytes = 3565
        p = 0x555561b8b8a0
        coding = <optimized out>
        carryover = <optimized out>
        readmax = <optimized out>
        count = <optimized out>
        odeactivate = XIL(0)
        chars = <optimized out>
        sa_avail = <optimized out>
        sa_count = <optimized out>
#55 0x000055555571b59b in wait_reading_process_output
(time_limit=time_limit@entry=30, nsecs=nsecs@entry=0,
read_kbd=read_kbd@entry=-1, do_display=do_display@entry=true,
wait_for_cell=wait_for_cell@entry=XIL(0),
    wait_proc=wait_proc@entry=0x0, just_wait_proc=<optimized out>) at
process.c:5948
        nread = <optimized out>
        process_skipped = <optimized out>
        wrapped = <optimized out>
        channel_start = <optimized out>
        child_fd = <optimized out>
        last_read_channel = 59
        channel = <optimized out>
        nfds = <optimized out>
        Available = {
          fds_bits = {2305843009213693968, 0 <repeats 15 times>}
        }
        Writeok = {
          fds_bits = {0 <repeats 16 times>}
        }
        check_write = <optimized out>
        check_delay = <optimized out>
        no_avail = <optimized out>
        xerrno = 25
        proc = XIL(0x555561b8b8a5)
--Type <RET> for more, q to quit, c to continue without paging--
        timeout = {
          tv_sec = 0,
          tv_nsec = 10000000
        }
        end_time = <optimized out>
        timer_delay = <optimized out>
        got_output_end_time = <optimized out>
        MINIMUM = MINIMUM
        TIMEOUT = TIMEOUT
        FOREVER = FOREVER
        wait = <optimized out>
        got_some_output = <optimized out>
        prev_wait_proc_nbytes_read = <optimized out>
        retry_for_async = <optimized out>
        count = <optimized out>
        now = <optimized out>
#56 0x0000555555597b80 in sit_for (timeout=timeout@entry=make_fixnum(30),
reading=reading@entry=true, display_option=display_option@entry=1) at
dispnew.c:6318
        sec = 30
        nsec = 0
        do_display = true
        curbuf_eq_winbuf = true
        nbytes = <optimized out>
#57 0x0000555555642022 in read_char (commandflag=1,
map=map@entry=XIL(0x555561701d83),
prev_event=XIL(0), used_mouse_menu=used_mouse_menu@entry=0x7fffffffd92b,
end_time=end_time@entry=0x0) at /w/emacs/src/lisp.h:745
        tem0 = <optimized out>
        timeout = 30
        count1 = <optimized out>
        delay_level = <optimized out>
        buffer_size = <optimized out>
        c = <optimized out>
        local_getcjmp = {{
            __jmpbuf = {93825000363200, 7543322980966822824,
93825001025184, 93825001162189, -6, 0, 4466016469898195880,
7543300029270553512},
            __mask_was_saved = 0,
            __saved_mask = {
              __val = {36768, 0, 4611686018528051200, 4611686019484352512,
3, 93825049410848, 93824994178559, 93825049410851, 4295004064, 148,
140737249045861, 148, 36768, 140737488344768, 140737249045856, 0}
            }
          }}
        save_jump = {{
            __jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0},
            __mask_was_saved = 0,
            __saved_mask = {
              __val = {0 <repeats 16 times>}
            }
          }}
        tem = <optimized out>
        save = <optimized out>
        previous_echo_area_message = XIL(0)
        also_record = XIL(0)
        reread = false
        recorded = false
        polling_stopped_here = false
        orig_kboard = 0x555555db6ea0
        retry = <optimized out>
        jmpcount = <optimized out>
#58 0x0000555555642958 in read_key_sequence
(keybuf=keybuf@entry=0x7fffffffda60,
prompt=prompt@entry=XIL(0), dont_downcase_last=dont_downcase_last@entry=false,
can_return_switch_frame=can_return_switch_frame@entry=true,
    fix_current_buffer=fix_current_buffer@entry=true,
prevent_redisplay=prevent_redisplay@entry=false,
disable_text_conversion_p=false) at keyboard.c:10723
        interrupted_kboard = 0x555555db6ea0
        interrupted_frame = 0x555555dd85c8
        key = <optimized out>
        used_mouse_menu = false
        echo_local_start = 0
--Type <RET> for more, q to quit, c to continue without paging--
        last_real_key_start = 0
        keys_local_start = 0
        new_binding = <optimized out>
        count = <optimized out>
        t = 0
        echo_start = 0
        keys_start = 0
        current_binding = XIL(0x555561701d83)
        first_unbound = 31
        mock_input = 0
        used_mouse_menu_history = {false <repeats 30 times>}
        fkey = {
          parent = XIL(0x7ffff2ba89f3),
          map = XIL(0x7ffff2ba89f3),
          start = 0,
          end = 0
        }
        keytran = {
          parent = XIL(0x7ffff211cddb),
          map = XIL(0x7ffff211cddb),
          start = 0,
          end = 0
        }
        indec = {
          parent = XIL(0x7ffff2ba89e3),
          map = XIL(0x7ffff2ba89e3),
          start = 0,
          end = 0
        }
        shift_translated = false
        delayed_switch_frame = XIL(0)
        original_uppercase = XIL(0)
        original_uppercase_position = -1
        starting_buffer = <optimized out>
        fake_prefixed_keys = XIL(0)
        first_event = XIL(0)
        second_event = <optimized out>
        replay_key = <optimized out>
#59 0x000055555564491e in command_loop_1 () at keyboard.c:1429
        cmd = <optimized out>
        keybuf = {XIL(0x45d210), make_fixnum(91), make_fixnum(50),
make_fixnum(53), make_fixnum(126), make_fixnum(49), make_fixnum(126),
XIL(0x55555576aa58), XIL(0x5555590f4b85), make_fixnum(23456248427686),
XIL(0), XIL(0x55555efa5cd3),
          XIL(0xb), XIL(0xda40), XIL(0x30), XIL(0x5555590f4b85),
XIL(0x2aaa9bbd2220), XIL(0x55555efa5cd3), XIL(0x60), XIL(0x7fffffffdb30),
XIL(0x7fffffffded8), make_fixnum(0), XIL(0x7fffffffe24b),
make_fixnum(23456248292273), XIL(0),
          XIL(0), XIL(0x7fffffffdb00), XIL(0x555555d28c20), XIL(0xb),
XIL(0x8760)}
        i = <optimized out>
        last_pt = <optimized out>
        prev_modiff = 1222
        prev_buffer = 0x555558e86250
#60 0x00005555556bbf67 in internal_condition_case
(bfun=bfun@entry=0x555555644770
<command_loop_1>, handlers=handlers@entry=XIL(0x90),
hfun=hfun@entry=0x555555638d80
<cmd_error>) at eval.c:1593
        val = <optimized out>
        c = 0x555555e7dbd0
#61 0x0000555555632376 in command_loop_2 (handlers=handlers@entry=XIL(0x90))
at keyboard.c:1168
        val = <optimized out>
#62 0x00005555556bbec1 in internal_catch (tag=tag@entry=XIL(0xe880),
func=func@entry=0x555555632350 <command_loop_2>, arg=arg@entry=XIL(0x90))
at eval.c:1272
        val = <optimized out>
        c = 0x555555e90c70
#63 0x0000555555632311 in command_loop () at keyboard.c:1146
No locals.
#64 0x000055555563893e in recursive_edit_1 () at keyboard.c:754
        count = <optimized out>
        val = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
#65 0x0000555555638cb0 in Frecursive_edit () at keyboard.c:837
        count = <optimized out>
        buffer = <optimized out>
#66 0x000055555558e2cf in main (argc=<optimized out>, argv=0x7fffffffded8)
at emacs.c:2621
        stack_bottom_variable = 0xfffffffffffffe70
        old_argc = <optimized out>
        dump_file = 0x0
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = <optimized out>
        dump_mode = <optimized out>
        skip_args = 1
        temacs = 0x0
        attempt_load_pdump = <optimized out>
        only_version = false
        rlim = {
          rlim_cur = 10022912,
          rlim_max = 18446744073709551615
        }
        lc_all = <optimized out>
        sockfd = -1
        module_assertions = <optimized out>
(gdb)
(gdb) xbacktrace
"Automatic GC" (0x0)
"tty-color-off-gray-diag" (0xffffadd8)
"tty-color-approximate" (0xffffaec8)
"tty-color-desc" (0xffffaf58)
"set-face-attribute" (0xffffb398)
"face-set-after-frame-default" (0xffffb498)
"tty-create-frame-with-faces" (0xf05ff0d0)
0xf1e015a0 PVEC_CLOSURE
"apply" (0xf05ff048)
"frame-creation-function" (0xffffb768)
"make-frame" (0xffffb868)
"server--create-frame" (0xffffba18)
"server-create-tty-frame" (0xffffbb78)
"server-process-filter" (0xffffbc48)

On Fri, 24 May 2024 at 19:26, Eli Zaretskii <[email-masked]> wrote:

> > From: Daniel Clemente <[email-masked]>
> > Date: Fri, 24 May 2024 17:38:11 +0000
> >
> > Using emacsclient, with Emacs compiled without X support. I'm seeing
> crashes from time to time, after dozens
> > of hours of normal work, mainly when opening a new emacsclient frame. I
> didn't find how to reproduce this.
> > The crashes have been happening since I switched to TTY-only (weeks or
> months ago). I attach some gdb
> > output+exploration of 1 crash, and my build details.
> > Apparently there's a nil default_face.
>
> Which should never happen.
>
> > My ~/.emacs is large but I don't do anything weird with the 'default
> face, apart from (set-face-foreground
> > 'default "#bbb"). Note that #bbb appears in the backtrace.
> > I use rxvt-unicode; $TERM=rxvt-unicode-256color
> >
> > Could it be because the GC runs before tty_lookup_color has finished its
> job?
>
> Unlikely.
>
> > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault.
> > face_at_buffer_position (w=0x5555747a08e0, pos=1, endptr=endptr@entry=0x7fffffff9918,
> limit=<optimized
> > out>, mouse=mouse@entry=false, base_face_id=<optimized out>,
> attr_filter=<optimized out>) at
> > xfaces.c:6819
> > warning: Source file is more recent than executable.
>         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> This is not a good sign: you have edited your sources after the Emacs
> binary was produced, so some of the information in the backtrace and
> the GDB session might be inaccurate or even incorrect.
>
> > 6819      return default_face->id;
>
> Do you use face-remapping?  Is face-remapping-alist non-nil when this
> happens?  If so, can you show the value of Vface_remapping_alist?
>
> > Configured using:
> >  'configure --prefix=/opt/dc/emacs/ --without-dbus --with-tiff=no
> --without-tiff
> >  --without-libsystemd --without-dbus --with-mailutils
> --with-native-compilation --without-modules
> >  --with-x-toolkit=no --without-imagemagick --without-xft
> --without-harfbuzz --without-freetype
> >  --without-libotf --without-xwidgets --without-xpm --without-jpeg
> --without-gif --without-png
> >  --without-webp --without-rsvg --without-cairo --without-x 'CFLAGS=-g3
> -O3''
>
> I recommend against using -O3 to build Emacs: at the very least it
> makes debugging much harder.  More importantly, with latest GCC
> versions it could produce invalid code (a.k.a. "GCC bugs").  The
> default optimization level -O2 should be more than enough.  (I'm not
> saying this has anything to do with the segfaults.)
>