Subject: Re: maxima: The SGC segfault recovery test failed with memprotect_bad_fault_address, SGC disabled

From: Kei Kebreau <[email-masked]>
Date: Wed, 22 Nov 2017 12:42:44 -0500

Alex Vong <[email-masked]> writes:

> Kei Kebreau <[email-masked]> writes:
>
>> Alex Vong <[email-masked]> writes:
>>
>>> Hello all,
>>>
>>> When I start maxima, I get the following warning message:
>>>
>>> The SGC segfault recovery test failed with
>>> memprotect_bad_fault_address, SGC disabled
>>> The SGC segfault recovery test failed with
>>> memprotect_bad_fault_address, SGC disabled
>>> Maxima 5.41.0 http://maxima.sourceforge.net
>>> using Lisp GNU Common Lisp (GCL) GCL 2.6.12
>>> Distributed under the GNU Public License. See the file COPYING.
>>> Dedicated to the memory of William Schelter.
>>> The function bug_report() provides bug reporting information.
>>>
>>> Actually I encountered this problem quite a while ago after an update,
>>> but I didn't report it since it was not fetal.
>>
>> When did you first notice this issue?
>>
> I am afraid I cannot remember exactly when...
>
> I installed wxmaxima long ago and things worked fine for a long
> time. One day, after updating wxmaxima, it showed the above warning and
> started to crash nondeterministically when I typed things into the
> message box. The crash was fixed quickly by another update, but the
> warning persisted. 
>
>>>
>>> Does anyone knows what's going on?
>>>
>>> Cheers,
>>> Alex
>>
>> Hello Alex,
>>
>> This is my first time running into this issue. While I do get this
>> warning message using the Maxima substitute from hydra.gnu.org, when I
>> build Maxima 5.41.0 from source locally, this warning message does not
>> appear. Is this the case for you as well?
>>
> Same for me. I set --prefix during configure and install it
> somewhere. It starts without the warning.
>
>> The message comes from the source code of GNU Common Lisp, but the GCL
>> binary from hydra.gnu.org doesn't give this error when I run it. It
>> seems like this comes down a bug in GCL set off by Maxima, a bug in
>> Maxima, a reproducibility issue, or some combination of all of
>> these. I'll be investigating this further.
>>
>> Thank you,
>> Kei
>
> Thanks for looking at it!

I turns out that the issue is with stratified garbage collection in
GCL. The substitute from hydra.gnu.org does in fact give me the error
when I run "(si::sgc-on t)" in the REPL. I'm preparing a patch to update
GCL to the version used in Debian stable (GCL git tag "pathnames1.13") and
we'll see if changing that definition on the master branch will do anything.