GNU bug report logs - #37762
‘guix offload’ sets too short a timeout

Previous Next

Package: guix;

Reported by: Ludovic Courtès <ludovic.courtes <at> inria.fr>

Date: Tue, 15 Oct 2019 10:23:01 UTC

Severity: important

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

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 37762 in the body.
You can then email your comments to 37762 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#37762; Package guix. (Tue, 15 Oct 2019 10:23:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ludovic Courtès <ludovic.courtes <at> inria.fr>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Tue, 15 Oct 2019 10:23:02 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: bug-Guix <at> gnu.org
Subject: ‘guix offload’ sets too short a timeout
Date: Tue, 15 Oct 2019 12:22:04 +0200
Hello Guix,

In (guix scripts offload) the SSH session is created like this:

       (make-session #:user (build-machine-user machine)
                     #:host (build-machine-name machine)
                     #:port (build-machine-port machine)
                     #:timeout 10       ;seconds
                     ;; …
                     )

What this means is that any connect(2), read(2), or write(2) call on the
underlying file descriptors that takes more than 10 seconds is
interpreted as EOF (at least on the Scheme side when reading from a
channel port; on the C side we might be able to distinguish.)

This was fine with libssh < 0.9.0 because that timeout was not honored
when reading from a channel due to a bug they fixed in libssh commit
e4e51ccc1340e313c203842d0180a1c4e33c95cc.

libssh 0.9.0, added in Guix commit
44941fd7dbc77a7bf84a9be63a309eca3ffdc1c2, contains this bug fix, meaning
that the 10s session timeout is actually honored now.

So in practice, if you offload a build process and that process remains
silent for 10s (which is not that much!), then ‘guix offload’ thinks
it’s done and (confusingly) goes on to fetch the result from the build
machine, which is of course unavailable.  The end result is an equally
confusing error message like this (the last two lines):

--8<---------------cut here---------------start------------->8---
starting phase `bootstrap'
running './autogen.sh'
patch-shebang: ./autogen.sh: changing `/bin/sh' to `/gnu/store/iql3p5zvz0nwcsckdpywdkqxccx95ygx-bash-minimal-5.0.7/bin/sh'
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I config/m4
/gnu/store/iql3p5zvz0nwcsckdpywdkqxccx95ygx-bash-minimal-5.0.7/bin/sh: git: command not found
guix offload: error: corrupt input while restoring archive from #<input-output: channel (open) 7fc227fbc180>
guix build: error: build of `/gnu/store/dpz058x83sc7y1krpkdn84b45vl5p9cz-ucx-1.6.1.drv' failed
--8<---------------cut here---------------end--------------->8---

Working on a bug fix…

Ludo’.




Severity set to 'important' from 'normal' Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Tue, 15 Oct 2019 10:29:02 GMT) Full text and rfc822 format available.

Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Tue, 15 Oct 2019 12:23:01 GMT) Full text and rfc822 format available.

Notification sent to Ludovic Courtès <ludovic.courtes <at> inria.fr>:
bug acknowledged by developer. (Tue, 15 Oct 2019 12:23:02 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludo <at> gnu.org>
To: 37762-done <at> debbugs.gnu.org
Subject: Re: bug#37762: ‘guix offload’ sets too
 short a timeout
Date: Tue, 15 Oct 2019 14:21:57 +0200
Ludovic Courtès <ludovic.courtes <at> inria.fr> skribis:

> In (guix scripts offload) the SSH session is created like this:
>
>        (make-session #:user (build-machine-user machine)
>                      #:host (build-machine-name machine)
>                      #:port (build-machine-port machine)
>                      #:timeout 10       ;seconds
>                      ;; …
>                      )

Fixed in 00d732195812234f578a9513b32010fbe6469cd1.

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 12 Nov 2019 12:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 169 days ago.

Previous Next


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