Subject: bug#39266: Finalization thread hits wrong-type-arg on weak vector (AArch64)

From: Brian Woodcox <[email-masked]>
Date: Wed, 19 Feb 2020 07:19:57 -0700

Well, I would be happy, because right now I can’t do guix pull.

I tried multiple timed on aarch64 with no success.

Brian.

> On Feb 19, 2020, at 6:50 AM, Ludovic Courtès <[email-masked]> wrote:
> 
> Ludovic Courtès <[email-masked]> skribis:
> 
>> While building the “guix-system.drv” derivation on AArch64, I got this
>> crash (not fully deterministic but quite frequent).  Here the
>> finalization thread gets a wrong-type-arg in ‘scm_i_weak_car’ (i.e.,
>> accessing a one-element weak vector):
>> 
>> $ ( export out=$PWD/build; unset GUILE_LOAD_PATH; unset GUILE_LOAD_COMPILED_PATH; gdb --args "/gnu/store/p8in2npgl5yhliy25ikz7shjbq0gii95-guile-next-3.0.0/bin/guile" "--no-auto-compile" "-L" "/gnu/store/3qg8l6kr4wa9sbgwy00z1mb3p88xf455-module-import" "-C" "/gnu/store/h9qcvg71bmx735fsndagll9y7s72k9n9-module-import-compiled" guix-system-builder )
>> […]
>> loading 'gnu/services/cups.scm'...
>> Backtrace:
> 
> Apparently this bug does not occur with v3.0.0-23-g7dc90a17e¹.  It may
> be that 00fbdfa7345765168e14438eed0b0b8c64c27ab9 reduces GC pressure,
> which as a side effect makes the problem vanish.
> 
> It’s not satisfactory, but as a stop-gap measure, we could release 3.0.1
> like this, which could make Guile 3 usable for Guix on AArch64.
> 
> Thoughts?
> 
> Ludo’.
> 
> ¹ Specifically, I tested by (1) building a tarball with “make dist”, (2)
>  running “guix build guile-next
>  --with-source=guile-next=the-tarball.tar.gz”, and (3) running that
>  Guile in the code above.  For some reason, Guile 3.0.0 built “by hand”
>  would not reproduce the original bug, which is why I built it through
>  Guix.
> 
> 
>