Subject: bug#41755: feature/native-comp (master?): temacs crash in GC during mark phase

From: Nicolas Bértolo <[email-masked]>
Date: Mon, 8 Jun 2020 15:51:14 -0300

> I'm wondering what we could do to make such bugs easier to find...

We could add a canary to stack based strings and conses. Then while
marking if we
come across a stack based string or cons we check that the canary is intact. If
it is not, then we can be sure that the memory has been written over.

Something like this:

struct Stack_String
{
  struct Lisp_String string;
  uint64_t canary = 0x12341234;
};

> Would GC_CHECK_MARKED_OBJECTS have caught this?

As far as I can see, during a GC we can't know if a stack-based string
is still alive.