Subject: bug#35139: Rust builds systematically time out

From: Pierre Langlois <[email-masked]>
Date: Thu, 04 Apr 2019 10:28:59 +0100

Hello!

Ludovic Courtès writes:

> Hello,
>
> On berlin, Rust 1.24.1 builds systematically exceed the timeout:
>
> --8<---------------cut here---------------start------------->8---
> Building stage1 compiler artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
>    Compiling arena v0.0.0 (file:///tmp/guix-build-rust-1.24.1.drv-0/rustc-1.24.1-src/src/libarena)
>    Compiling rustc_driver v0.0.0 (file:///tmp/guix-build-rust-1.24.1.drv-0/rustc-1.24.1-src/src/librustc_driver)
>
> [...]
>
>    Compiling rls-data v0.14.0
>    Compiling rustc_data_structures v0.0.0 (file:///tmp/guix-build-rust-1.24.1.drv-0/rustc-1.24.1-src/src/librustc_data_structures)
>    Compiling flate2 v1.0.1
>    Compiling syntax_pos v0.0.0 (file:///tmp/guix-build-rust-1.24.1.drv-0/rustc-1.24.1-src/src/libsyntax_pos)
>    Compiling rustc_errors v0.0.0 (file:///tmp/guix-build-rust-1.24.1.drv-0/rustc-1.24.1-src/src/librustc_errors)
>    Compiling backtrace v0.3.4
> guix offload: error: timeout expired while offloading '/gnu/store/61bd22d9mg3xl260jwddisiahh3kmanj-rust-1.24.1.drv'
> --8<---------------cut here---------------end--------------->8---
>
> Strangely, the build lasts ~9000 seconds (2.5 hours) on the front-end
> node of berlin¹, and the timeout for guix-daemon on berlin is 6h (see
> guix-maintenance.git) while the max-silent-time is 1h.
>
> The build nodes may be slower than the front-end, but still, it seems
> unlikely that it would take more than 6h there.  (That could happen if
> the test suite, which lasts 2.1h, were “embarrassingly parallel”, but
> we’re running tests with ‘-j1’.)
>
> To summarize, there are two problems:
>
>   1. Rust takes too long to build.  What can we do about it?  Enable
>      parallel builds?

One thing I suggested in the past was to remove the check phase *only*
for rust packages used for bootstrapping. This way we still run the
tests for the final rust but not at every step in the chain.

Although, I wonder if we're more likely to miss a bug if we do this, I'm
not sure.

For reference: https://lists.gnu.org/archive/html/guix-patches/2018-11/msg00453.html

Thanks,
Pierre