Subject: Re: bug#38748: 28.0.50; crash on MacOS 10.15.2

From: Robert Pluim <[email-masked]>
Date: Thu, 09 Jan 2020 15:56:01 +0100

>>>>> On Thu, 09 Jan 2020 16:16:03 +0200, Eli Zaretskii <[email-masked]> said:

    >> From: Robert Pluim <[email-masked]>
    >> Cc: [email-masked],  [email-masked],  [email-masked],
    >> [email-masked],  [email-masked]
    >> Date: Thu, 09 Jan 2020 11:31:25 +0100
    >> 
    Eli> Also, can I please see one backtrace with all the call-stack frames,
    Eli> starting from 'main' and ending at 'handle_fatal_signal'?  The
    Eli> original report shows only the top-most 511 frames, and the other one
    Eli> has a lot of ?? (missing symbols) in it.
    >> 
    >> 'bt full' backtrace attached.

    Eli> Thanks.

    >> Thread 2 received signal SIGSEGV, Segmentation fault.
    >> 0x0000000100221f88 in vector_marked_p (v=0x20a000000000) at alloc.c:3726
    >> 3726	  return XVECTOR_MARKED_P (v);
    >> (gdb) bt full
    >> #0  0x0000000100221f88 in vector_marked_p (v=0x20a000000000) at alloc.c:3726
    >> No locals.
    >> #1  0x00000001002255e5 in vectorlike_marked_p (header=0x20a000000000)
    >> at alloc.c:3744
    >> No locals.
    >> #2  0x00000001002221c2 in mark_frame (ptr=0x164cc69a0) at alloc.c:6321
    >> font = 0x20a000000000
    >> f = 0x164cc69a0

    Eli> This says that we were marking a frame, and its default font is a
    Eli> garbled pointer.  Are all of the crashes you see happen because of a
    Eli> faulty frame font in this snippet:

    Eli>   static void
    Eli>   mark_frame (struct Lisp_Vector *ptr)
    Eli>   {
    Eli>     struct frame *f = (struct frame *) ptr;
    Eli>     mark_vectorlike (&ptr->header);
    Eli>     mark_face_cache (f->face_cache);
    Eli>   #ifdef HAVE_WINDOW_SYSTEM
    Eli>     if (FRAME_WINDOW_P (f) && FRAME_OUTPUT_DATA (f))
    Eli>       {
    Eli> 	struct font *font = FRAME_FONT (f);

    Eli> 	if (font && !vectorlike_marked_p (&font->header))  <<<<<<<<<<<<
    Eli> 	  mark_vectorlike (&font->header);
    Eli>       }
    Eli>   #endif
    Eli>   }

    Eli> I hope you still have this crashed session in the debugger.  If so,
    Eli> please tell: do you have many frames in that session, or just a few
    Eli> (perhaps even one)?  I'd like to see some more details about this
    Eli> frame, if possible.

I donʼt have it right now, but itʼs easy enough to recreate the crash
(and yes, I tend to have half a dozen frames open). What details would
you like?

Robert