Subject: bug#74381: High memory usage during guix pull (i686-linux, guile jit)

From: Dariqq <[email-masked]>
Date: Thu, 19 Dec 2024 16:54:04 +0000

It turns out disabling guile jit does not work reliably and even without 
it guix pull may oom building guix-packages-base using 3GB+ of RAM.

My workaround for now is to run 'guix pull -s i686-linux -p 
/tmp/whatever' on an x86_64 machine (to have more RAM available) with 
guile jit disabled multiple times until it succeeds (not exactly sure 
why that works, is something getting cached somewhere?) and use that 
machine to serve substitutes.

After mentioning this on irc today janneke mentioned this commit 
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=15c5f1a2c20b21de0f19f42db1ccab4c42117ebb 
which reduces the number of files per chunk from 25 to 10 to get guix 
pull working on the 32 bit hurd.

I tried reducing that even further to 5 in my local checkout and the max 
RAM usage went to (a little bit more reasonable) 1.5-2 GB (both on i686 
natively and when emulating with -s i686 with and without guile jit). 
This would be still not enough for my little machine but might be enough 
for the substitute servers to build it reliably.

I also wanted to try this in a i586-gnu childhurd but guix pull 
immediately segfaulted.