GNU bug report logs - #35139
Rust builds systematically time out

Previous Next

Package: guix;

Reported by: Ludovic Courtès <ludo <at> gnu.org>

Date: Thu, 4 Apr 2019 09:01:02 UTC

Severity: important

Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 35139 in the body.
You can then email your comments to 35139 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#35139; Package guix. (Thu, 04 Apr 2019 09:01:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ludovic Courtès <ludo <at> gnu.org>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Thu, 04 Apr 2019 09:01:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: bug-Guix <at> gnu.org
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>,
 Ivan Petkov <ivanppetkov <at> gmail.com>
Subject: Rust builds systematically time out
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.




Information forwarded to bug-guix <at> gnu.org:
bug#35139; Package guix. (Thu, 04 Apr 2019 09:30:01 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Pierre Langlois <pierre.langlois <at> gmx.com>
To: bug-guix <at> gnu.org
Cc: Ivan Petkov <ivanppetkov <at> gmail.com>
Subject: Re: bug#35139: Rust builds systematically time out
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




Severity set to 'important' from 'normal' Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Thu, 04 Apr 2019 11:26:03 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#35139; Package guix. (Thu, 04 Apr 2019 15:49:01 GMT) Full text and rfc822 format available.

Message #13 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ivan Petkov <ivanppetkov <at> gmail.com>
To: Pierre Langlois <pierre.langlois <at> gmx.com>,
 Ludovic Courtès <ludo <at> gnu.org>
Cc: bug-guix <at> gnu.org
Subject: Re: bug#35139: Rust builds systematically time out
Date: Thu, 4 Apr 2019 08:47:42 -0700
[Message part 1 (text/plain, inline)]
> On Apr 4, 2019, at 1:59 AM, Ludovic Courtès <ludo <at> gnu.org> wrote:
> 
> 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?

Rust tests are designed to run in parallel, as long as you have enough
RAM, file descriptors, etc. available on the machine for the amount of
concurrency being used. The compiler test suite is largely just compiling
files, so the most important resource is probably available RAM/swap.

> On Apr 4, 2019, at 2:28 AM, Pierre Langlois <pierre.langlois <at> gmx.com> wrote:
> 
> 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.

Although that definitely will speed the bootstrap chain, I’m concerned that
if a dependency package ever gets updated and breaks things we wouldn’t
know without running the test suite.

Maybe if the bootstrapped versions don’t ever change skipping the check
phase will be safe, but I think we should try running parallel tests first
and see how far that gets us.

—Ivan
[Message part 2 (text/html, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#35139; Package guix. (Thu, 04 Apr 2019 16:07:01 GMT) Full text and rfc822 format available.

Message #16 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Ivan Petkov <ivanppetkov <at> gmail.com>
Cc: Pierre Langlois <pierre.langlois <at> gmx.com>, bug-guix <at> gnu.org
Subject: Re: bug#35139: Rust builds systematically time out
Date: Thu, 04 Apr 2019 18:06:07 +0200
Ivan Petkov <ivanppetkov <at> gmail.com> skribis:

>> On Apr 4, 2019, at 1:59 AM, Ludovic Courtès <ludo <at> gnu.org> wrote:
>> 
>> 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?
>
> Rust tests are designed to run in parallel, as long as you have enough
> RAM, file descriptors, etc. available on the machine for the amount of
> concurrency being used. The compiler test suite is largely just compiling
> files, so the most important resource is probably available RAM/swap.

Perhaps we could start with:

  "-j" (number->string (min (parallel-job-count) 2))

?

> Maybe if the bootstrapped versions don’t ever change skipping the check
> phase will be safe, but I think we should try running parallel tests first
> and see how far that gets us.

Sounds like a good start.

So the only reason we’re running tests sequentially is because of memory
usage concerns?

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#35139; Package guix. (Thu, 04 Apr 2019 17:38:02 GMT) Full text and rfc822 format available.

Message #19 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ivan Petkov <ivanppetkov <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: dannym <at> scratchpost.org, Pierre Langlois <pierre.langlois <at> gmx.com>,
 bug-guix <at> gnu.org
Subject: Re: bug#35139: Rust builds systematically time out
Date: Thu, 4 Apr 2019 10:37:03 -0700
[Message part 1 (text/plain, inline)]
Danny’s got a patch for turning on parallel tests in #35126

Not sure why the previous tests were running sequentially, but there is a comment somewhere saying it’s to avoid EAGAIN errors.

--Ivan

> On Apr 4, 2019, at 9:06 AM, Ludovic Courtès <ludo <at> gnu.org> wrote:
> 
> Ivan Petkov <ivanppetkov <at> gmail.com> skribis:
> 
>>> On Apr 4, 2019, at 1:59 AM, Ludovic Courtès <ludo <at> gnu.org> wrote:
>>> 
>>> 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?
>> 
>> Rust tests are designed to run in parallel, as long as you have enough
>> RAM, file descriptors, etc. available on the machine for the amount of
>> concurrency being used. The compiler test suite is largely just compiling
>> files, so the most important resource is probably available RAM/swap.
> 
> Perhaps we could start with:
> 
>  "-j" (number->string (min (parallel-job-count) 2))
> 
> ?
> 
>> Maybe if the bootstrapped versions don’t ever change skipping the check
>> phase will be safe, but I think we should try running parallel tests first
>> and see how far that gets us.
> 
> Sounds like a good start.
> 
> So the only reason we’re running tests sequentially is because of memory
> usage concerns?
> 
> Thanks,
> Ludo’.
[Message part 2 (text/html, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#35139; Package guix. (Fri, 05 Apr 2019 21:21:02 GMT) Full text and rfc822 format available.

Message #22 received at submit <at> debbugs.gnu.org (full text, mbox):

From: mikadoZero <mikadozero <at> yandex.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: bug-Guix <at> gnu.org, Ivan Petkov <ivanppetkov <at> gmail.com>
Subject: Re: bug#35139: Rust builds systematically time out
Date: Fri, 05 Apr 2019 17:18:51 -0400
When I try to install rust I get similar behavior.  It does not finish
building.  The longest I have let it try for was around 12 hours. That
was is a on a machine with 1GB RAM and 10GB SWAP.

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?
>
>   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.





Information forwarded to bug-guix <at> gnu.org:
bug#35139; Package guix. (Mon, 30 Mar 2020 05:43:02 GMT) Full text and rfc822 format available.

Message #25 received at 35139 <at> debbugs.gnu.org (full text, mbox):

From: John Soo <jsoo1 <at> asu.edu>
To: 35139 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Pierre Neidhardt <mail <at> ambrevar.xyz>
Subject: Rust builds systematically time out
Date: Sun, 29 Mar 2020 22:42:02 -0700
Hi everyone,

Is this still happening? It looks like rust-1.24.1 is completing successfully on both ci servers.

- John



Information forwarded to bug-guix <at> gnu.org:
bug#35139; Package guix. (Fri, 18 Dec 2020 10:30:02 GMT) Full text and rfc822 format available.

Message #28 received at 35139 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <othacehe <at> gnu.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: pierre.langlois <at> gmx.com, 35139 <at> debbugs.gnu.org,
 Ivan Petkov <ivanppetkov <at> gmail.com>
Subject: Re: bug#35139: Rust builds systematically time out
Date: Fri, 18 Dec 2020 11:29:34 +0100
Hello,

>>>  1. Rust takes too long to build.  What can we do about it?  Enable
>>>     parallel builds?

I've noticed that Rust packages are also built with "-j1". Evaluations
such as: https://ci.guix.gnu.org/eval/19873 are causing rebuilds of many
Rust packages, hence monopolizing the build farm for hours.

Would it be possible to enable parallel building for Rust packages as
suggested by Ludo in this thread?

Thanks,

Mathieu




Information forwarded to bug-guix <at> gnu.org:
bug#35139; Package guix. (Fri, 18 Dec 2020 10:51:02 GMT) Full text and rfc822 format available.

Message #31 received at 35139 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Mathieu Othacehe <othacehe <at> gnu.org>, Ludovic Courtès
 <ludo <at> gnu.org>
Cc: 35139 <at> debbugs.gnu.org, Ivan Petkov <ivanppetkov <at> gmail.com>
Subject: Re: bug#35139: Rust builds systematically time out
Date: Fri, 18 Dec 2020 11:45:33 +0100
Hi Mathieu,

On Fri, 18 Dec 2020 at 11:29, Mathieu Othacehe <othacehe <at> gnu.org> wrote:
> Hello,
>
>>>>  1. Rust takes too long to build.  What can we do about it?  Enable
>>>>     parallel builds?
>
> I've noticed that Rust packages are also built with "-j1". Evaluations
> such as: https://ci.guix.gnu.org/eval/19873 are causing rebuilds of many
> Rust packages, hence monopolizing the build farm for hours.
>
> Would it be possible to enable parallel building for Rust packages as
> suggested by Ludo in this thread?

Does the parallel builds build reproductibly?

All the best,
simon




Reply sent to Maxim Cournoyer <maxim.cournoyer <at> gmail.com>:
You have taken responsibility. (Sun, 21 Nov 2021 06:10:02 GMT) Full text and rfc822 format available.

Notification sent to Ludovic Courtès <ludo <at> gnu.org>:
bug acknowledged by developer. (Sun, 21 Nov 2021 06:10:02 GMT) Full text and rfc822 format available.

Message #36 received at 35139-done <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>, 35139-done <at> debbugs.gnu.org,
 Ivan Petkov <ivanppetkov <at> gmail.com>
Subject: Re: bug#35139: Rust builds systematically time out
Date: Sun, 21 Nov 2021 01:09:23 -0500
Hello,

Ludovic Courtès <ludo <at> gnu.org> writes:

> Hello,
>
> On berlin, Rust 1.24.1 builds systematically exceed the timeout:
>
> 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'
>
> 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.

With the recent improvement in the Rust bootstrap toolchains, I'm
considering this fixed.

If there are still timeouts, Cuirass is now supposed to honor the
'timeout' property.

Closing!

Maxim




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 19 Dec 2021 12:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 122 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.