From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Subject: bug#38062: Offloading + timeout + --keep-going leads to assertion failure Date: Mon, 04 Nov 2019 21:45:47 +0100 Message-ID: <87o8xr5q10.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:46240) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iRjEk-00027I-4I for bug-guix@gnu.org; Mon, 04 Nov 2019 15:46:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iRjEi-0001rt-5X for bug-guix@gnu.org; Mon, 04 Nov 2019 15:46:06 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:57028) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iRjEg-0001rc-Ag for bug-guix@gnu.org; Mon, 04 Nov 2019 15:46:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iRjEg-00048o-36 for bug-guix@gnu.org; Mon, 04 Nov 2019 15:46:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:46172) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iRjET-00026g-S5 for bug-Guix@gnu.org; Mon, 04 Nov 2019 15:45:50 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:37508) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1iRjET-0001pA-OF for bug-Guix@gnu.org; Mon, 04 Nov 2019 15:45:49 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=48436 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1iRjET-0005fb-BZ for bug-Guix@gnu.org; Mon, 04 Nov 2019 15:45:49 -0500 List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: bug-Guix@gnu.org Hello, An offloaded build that times out in the presence of =E2=80=98--keep-going= =E2=80=99 leads to an assertion failure. To reproduce, set up offloading and run something like this: --8<---------------cut here---------------start------------->8--- $ guix build vim --no-substitutes --timeout=3D5 --keep-going The following derivation will be built: /gnu/store/5mnnym9xwl145s1b88aqfmrka810w9ci-vim-8.1.0644.drv process 4277 acquired build slot '/var/guix/offload/localhost:2222/0' load on machine 'localhost' is 0.04 (normalized: 0.01) building /gnu/store/5mnnym9xwl145s1b88aqfmrka810w9ci-vim-8.1.0644.drv... sending 1 store item (48 MiB) to 'localhost'... exporting path `/gnu/store/mlwyk5vcja0gqm20xxj8mwgf0fbqv8cz-vim-8.1.0644-ch= eckout' building of `/gnu/store/5mnnym9xwl145s1b88aqfmrka810w9ci-vim-8.1.0644.drv' = timed out after 5 seconds build of /gnu/store/5mnnym9xwl145s1b88aqfmrka810w9ci-vim-8.1.0644.drv failed View build log at '/var/log/guix/drvs/5m/nnym9xwl145s1b88aqfmrka810w9ci-vim= -8.1.0644.drv.bz2'. guix build: error: corrupt input while restoring archive from # --8<---------------cut here---------------end--------------->8--- The last error is due to premature EOF on the client socket: the child =E2=80=98guix-daemon=E2=80=99 process crashed, and thus =E2=80=98guix build= =E2=80=99 gets EPIPE on its client socket. Here=E2=80=99s how the =E2=80=98guix-daemon=E2=80=99 proces= s crashed: --8<---------------cut here---------------start------------->8--- $ tail -3 /var/log/guix-daemon.log accepted connection from pid 4270, user ludo accepted connection from pid 4277, user root guix-daemon: nix/libstore/build.cc:3448: void nix::Worker::run(const Goals&= ): Assertion `!settings.keepGoing || children.empty()' failed. --8<---------------cut here---------------end--------------->8--- In Cuirass, this manifests itself with EPIPE while writing to the client socket: --8<---------------cut here---------------start------------->8--- 2019-11-04T20:11:26 fatal: uncaught exception 'system-error' in 'restart-bu= ilds' fiber! 2019-11-04T20:11:26 exception arguments: ("fport_write" "~A" ("Broken pipe"= ) (32)) In ice-9/boot-9.scm: 829:9 5 (catch _ _ # ?) 751:25 4 (dispatch-exception 0 system-error ("fport_write" "~A" ?)) In cuirass/utils.scm: 183:8 3 (_ _ "fport_write" "~A" ("Broken pipe") (32)) In ice-9/boot-9.scm: 829:9 2 (catch #t # ?) In cuirass/utils.scm: 184:22 1 (_) In unknown file: 0 (make-stack #t) ERROR: In procedure make-stack: In procedure fport_write: Broken pipe --8<---------------cut here---------------end--------------->8--- This bug is almost certainly a consequence of commit ada9a19a2dca74feafcf24df1152abd685d4142f. To be continued=E2=80=A6 Ludo=E2=80=99.