Subject: bug#78444: 30.1; Crash in GC (vector_marked_p)

From: George P <[email-masked]>
Date: Sat, 17 May 2025 13:20:33 -0400

>
> Can you try this (subtracting 5 from the tagged pointer to get the base
> pointer, then printing its memory region):
>
>      x/32gx 0x98e79d8
>      x/32gx 0x98f1d08
>

(gdb) x/32gx 0x98e79d8
0x98e79d8:      0xc00000000e008000      0x0000000020e10970
0x98e79e8:      0x0000000003aa20d0      0x0000000003aa1ac0
0x98e79f8:      0x00000000006e9960      0x000000002265f480
0x98e7a08:      0x0000001a0000001a      0x0000400700000060
0x98e7a18:      0x0000000000000000      0x400000000e008000
0x98e7a28:      0x000000001bfdbe90      0x0000000020e10b80
0x98e7a38:      0x000000001bfdb880      0x00000000006e98e0
0x98e7a48:      0x000000001fd792e0      0x0000001a0000001a
0x98e7a58:      0x0000400700000060      0x0000000000000000
0x98e7a68:      0x400000001f000005      0x0000000000000606
0x98e7a78:      0x0000000008ae5654      0x000000001b78fe2d
0x98e7a88:      0x0000000000000012      0x0000000008ae5674
0x98e7a98:      0x400000001f000005      0x0000000000000606
0x98e7aa8:      0x0000000008ae5694      0x000000001c32b8dd
0x98e7ab8:      0x000000000000000e      0x0000000008ae5674
0x98e7ac8:      0x000000000000000e      0x000015554de5d450
(gdb) x/32gx 0x98f1d08
0x98f1d08:      0x8000000000000002      0x0000000000000000
0x98f1d18:      0x400000002300000d      0x0000000000000000
0x98f1d28:      0x0000000003eaec10      0x00000000019e1500
0x98f1d38:      0x0000000000000000      0x000000000000b640
0x98f1d48:      0x0000000000000000      0x0000000000019082
0x98f1d58:      0x0000000000019102      0x000000000000004e
0x98f1d68:      0x0000000000000000      0x0000000000000192
0x98f1d78:      0x0000000000000002      0x0000000000000000
0x98f1d88:      0x400000002300000d      0x0000000000000000
0x98f1d98:      0x0000000003eaec10      0x00000000019e1500
0x98f1da8:      0x0000000000000000      0x000000000000b640
0x98f1db8:      0x0000000000000000      0x0000000000019082
0x98f1dc8:      0x0000000000019102      0x000000000000004e
0x98f1dd8:      0x0000000000000000      0x0000000000000192
0x98f1de8:      0x0000000000000002      0x0000000000000000
0x98f1df8:      0x400000002300000d      0x0000000000000000
(gdb)

Let me know if you need anything further!

Thanks!
George

On Sat, May 17, 2025 at 4:52 AM Pip Cet <[email-masked]> wrote:

> "George P" <[email-masked]> writes:
>
> > No worries, happy to provide as much info as I can. Unfortunately, gdb
> shows XVECTOR as not defined, and I am not sure what the right code to run
> > for my platform should be.
> >
> > (gdb) p *XVECTOR(0x98e79dd)
> > No symbol "XVECTOR" in current context.
>
> Can you try this (subtracting 5 from the tagged pointer to get the base
> pointer, then printing its memory region):
>
>      x/32gx 0x98e79d8
>      x/32gx 0x98f1d08
>
> > (gdb) x/77gx 0x15554f39bca8
>
> Unfortunately, I don't see any overlap between that and the last_marked
> entries.  Might have worked with an even larger LAST_MARKED_SIZE.
>
> > (gdb) p terminal_list->display_info
> > $1 = {tty = 0x7f3ed10, x = 0x7f3ed10, w32 = 0x7f3ed10, ns = 0x7f3ed10,
> pgtk = 0x7f3ed10, haiku = 0x7f3ed10, android = 0x7f3ed10}
> > (gdb) p *terminal_list->display_info.x
> >   Xatom_LINE_NUMBER = 399, Xatom_COLUMN_NUMBER = 400, Xatom_OWNER_OS =
> 401, Xatom_HOST_NAME = 402, Xatom_USER = 403,
> > Xatom_CLASS = 404, Xatom_NAME = 405, Xatom_SAVE_TARGETS = 406,
> x_focus_frame = 0x13cea00, x_focus_event_frame = 0x13cea00,
> > highlight_frame = 0x13cea00, x_pending_autoraise_frame = 0x0,
> last_mouse_frame = 0x13cea00, last_mouse_glyph_frame = 0x0,
> > last_mouse_motion_frame = 0x13cea00,
> >   last_mouse_scroll_bar = 0x0, last_user_time = 2180587218,
> last_mouse_motion_x = 308, last_mouse_motion_y = 1144, last_mouse_glyph =
> {x =
>
> No dangling pointers here, as far as I can see.
>
> >  Can you say more about that?  Are you running using a remote X server,
> >  or some kind of tunnel setup, or is this some sort of WSL or VM setup?
> >  It's relevant because remote X sessions have very different timing
> >  characteristics, and different code for determining mouse positions is
> >  in use.
> >
> > This is not WSL or VM. I use PUTTY on Windows 10 to connect to a remote
> Linux host (which is running the emacs daemon), and then I open the
> > emacs frame (emacsclient) with X forwarding using Cygwin/X.
>
> Thank you, that makes sense!
>
> Pip
>
>