Hi, TL;DR: To mitigate this, add `GUILE_JIT_THRESHOLD=-1' as an environment variable for Cuirass. If you use the cuirass package from the guix channel you should be able to use `package-with-patches' and the attached patch.
On 2024-01-21T16:16:57+0100, Roman Scherer wrote: > > Hi Guix, > > I'm running Cuirass for one of my channels on an aarch64 VM on the Hetzner > Cloud. When I visit the Cuirass web interface it sometimes serves the page, > but most of the time it just serves a blank page. I have been tracking down the exact same error last week. My debbuging showed that a related issue has been reported to guile-fibers in [0]. There, Andy Wingo suggested that it might be bad codegen for atomics[1]. I tried the test case in [0] for guile commits 33e07fc56c18d4f3ffbfd53c4a8300bb2b5e49ba which should be the first commit to be using the atomic instructions and it failed while it succeeded with the previous commit. I also tried applying only part of 33e07fc56c18d4f3ffbfd53c4a8300bb2b5e49ba and found that applying the changes for `compile_atomic_scm_swap_immediate' also makes the test fail. Unfortunately, I'm not proficient in assembly, atomics and JIT and don't see anything wrong with it. Even worse, I definitely should be doing other things right now :D and haven't had time to report my findings. Feel free to do so :). Else, I might find some time next week. > [...] > Recently I submitted this patch [2] to guile-fibers to get my system > updated. There were no substitutes available and I had to build the package on > my server. Unfortuntly that build never completed it just hang in the tests. I too had that problem and was able to work around it by building it on my x86_64 laptop using transparent emulation. I don't know if this is related and haven't tested it with `GUILE_JIT_THRESHOLD=-1'. I hope this helps vicvbcun [0]: https://github.com/wingo/fibers/issues/83 [1]: https://github.com/wingo/fibers/issues/83#issuecomment-1538427808
diff --git a/bin/cuirass.in b/bin/cuirass.in index 207eecf..5514466 100644 --- a/bin/cuirass.in +++ b/bin/cuirass.in @@ -3,6 +3,7 @@ # @configure_input@ #GUILE_LOAD_PATH="@PACKAGE_LOAD_PATH@${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH" #GUILE_LOAD_COMPILED_PATH="@PACKAGE_LOAD_COMPILED_PATH@${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH" +export GUILE_JIT_THRESHOLD=-1 exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@" !# ;;;; cuirass -- continuous integration tool