Subject: bug#47717: guix outrageously exhaust itself (freeze) when there is package build failure

From: Tobias Geerinckx-Rice <[email-masked]>
Date: Wed, 14 Apr 2021 02:40:00 +0200

bo0od writes:
> yes sound dramatic but i couldnt describe what happened better.

I mean the ‘outrageously’ part.  When Linux runs out of memory, it 
freezes up.  Moral judgment is futile.  Better to adopt 
raingloom's earlyoom suggestion or similar.

> /var/log/guix/drvs/5a/8xxi15g20iqr78daw3w1c7xyqmmd1k-vigra-1.11.1.drv.bz2
>
> check the uploaded .txt file

I did, hence the question. ;-)  The file I asked for is missing.

> 4G of ram not enough? That would be interesting if its not.

Prepare to be interested, I guess... y... yaay...

4 GiB is absolutely not enough to build an outrageous amount of 
‘modern’ software, especially in parallel (so not using --cores=1 
--max-jobs=1) to make use of those expensive cores.

I'm disgusted too.

> No, i dont like workarounds

Oh, nor do I.  My point is this isn't a bug in Guix, so it's not a 
bug we can ‘fix’.  A ‘workaround’ is the best we can do.

For example, one such workaround would be to ask the user whether 
they want to run the daemon in ‘slow mode’ (--cores=1 --max-jobs=1 
etc.) if we detect <N GiB of RAM during installation.

But with only 4 GiB of RAM and -j1 some ‘modern’ things will still 
fail.  At that point you offload or accept substitutes, and I 
think doing either selectively is pointless.

> If substitutes are essentials for users then it should be 
> enabled by
> default ,

I didn't say they were essential; they're not.  They're an 
alternative to downloading more RAM.

I think the installer now asks whether you want to enable 
substitutes.  Do you remember if it did?  If you chose not to, why 
not, and do you feel like you were making an informed decision?

> or switched automatically if there is something bad happened 
> like this
> issue.

This won't happen.  Enabling substitutes requires informed 
administrator consent.  If that's an issue -- and I bet it is! -- 
we need to do a better job educating them during installation, no 
later.

Kind regards,

T G-R