Subject: bug#79116: 31.0.50; Crash on IGC build

From: Pip Cet <[email-masked]>
Date: Wed, 30 Jul 2025 12:30:31 +0000

"Eli Zaretskii" <[email-masked]> writes:

>> Cc: [email-masked]
>> Date: Tue, 29 Jul 2025 18:18:05 +0000
>> From:  Pip Cet via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <[email-masked]>
>>
>> "Sean Devlin" <[email-masked]> writes:
>>
>> > Hi folks,
>> >
>> > I left Emacs idle overnight, and I found a crash log when I returned in
>> > the morning. Please see the attached file.
>> >
>> > I'm using the IGC branch, and it looks like a related assertion failed.
>> >
>> > I have igc-step-interval set to 0.05, but no other configuration related to GC.
>> >
>> > I don’t know how to reproduce the error.
>> >
>> > Thanks!
>>
>> Thanks for the report. I'm afraid we don't have very much to go on: this
>> assertion in trace.c in MPS failed:
>>
>>     AVER(RefSetSub(ScanStateUnfixedSummary(ss), SegSummary(seg))); /* <design/check/#.common> */
>>
>> I think that means a memory structure internal to MPS must have been
>> corrupted; either the ScanState on the stack, or the segment
>> information.
>
> Do you understand how come a non-main thread called MPS in this case?

Yes, MPS uses a separate thread to handle Mach exceptions on macOS,
rather than a signal handler. Most likely, the main thread accessed
memory behind a memory barrier and was suspended while the protection
thread attempted to lift the barrier, but that ran into an assertion
violation and aborted instead.

Pip