Subject: bug#57751: 29.0.50; crash in GC

From: Gerd Möllmann <[email-masked]>
Date: Thu, 15 Sep 2022 10:42:12 +0200

Gerd Möllmann <[email-masked]> writes:

> I think I'll try next to reproduce this desktop loading/moving frame
> crash here.  When I get something, I'll bisect, and then let's see
> further.  I'll report back when I have something.

Just want to drop this here, because I'll probably only continue
tomorrow.  And because I find this a little bit baffling.

Save the following 2 lines as crash.el, which are what I could reduce my
init file to:

(custom-set-variables
 '(save-place-mode t))

Then start Emacs from the src directory like this:

lldb emacs
run -Q  -l crash.el xdisp.c dispextern.h lisp.h nsterm.m xterm.c

When the Emacs GUI window appears, quickly grab its titlebar with the
mouse and drag it up.  I usually need a few trials (< 10) to be
quick enough, or what the reason might be.

Result:

Process 94346 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x1705bfbb0)
    frame #0: 0x0000000100145e18 emacs`process_mark_stack [inlined] symbol_marked_p(s=0x00000001705bfbb0) at alloc.c:4020:7 [opt]
   4017	{
   4018	  return pdumper_object_p (s)
   4019	    ? pdumper_marked_p (s)
-> 4020	    : s->u.s.gcmarkbit;
   4021	}
   4022	
   4023	static void

(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x1705bfbb0)
  * frame #0: 0x0000000100145e18 emacs`process_mark_stack [inlined] symbol_marked_p(s=0x00000001705bfbb0) at alloc.c:4020:7 [opt]
    frame #1: 0x0000000100145e08 emacs`process_mark_stack(base_sp=<unavailable>) at alloc.c:6943:10 [opt]
    frame #2: 0x0000000100145654 emacs`mark_object(obj=<unavailable>) at alloc.c:7035:3 [opt] [artificial]
    frame #3: 0x00000001000f3f44 emacs`mark_kboards at keyboard.c:13266:4 [opt]
    frame #4: 0x0000000100144cbc emacs`garbage_collect at alloc.c:6187:3 [opt]

That's the same crash as Sam reported.

Sam, are you also using save-place?  Can you reproduce this recipe?

(In case it matters, my places file has 180 lines, and contains entries
for the files I'm loading.)