GNU bug report logs -
#35139
Rust builds systematically time out
Previous Next
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.
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):
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):
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):
[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):
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):
[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):
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):
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):
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):
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):
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.