Subject: Rust builds systematically time out

From: Ludovic Courtès <[email-masked]>
Date: Thu, 04 Apr 2019 10:59:52 +0200

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?

  2. Offloaded builds seem to time out prematurely or something.

Thoughts?

Ludo’.

¹ See <https://ci.guix.info/log/rkrnm3rr7g6fhr17160vn1mz5rdzh9lv-rust-1.24.1>
  for timings.