From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maxim Cournoyer Subject: bug#26833: `guix substitute --substitute' dies on unreachable substitute server Date: Mon, 08 May 2017 08:40:25 -0700 Message-ID: <87efvzz79y.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:54452) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d7kmX-0003gG-JG for bug-guix@gnu.org; Mon, 08 May 2017 11:41:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d7kmU-0000oe-VQ for bug-guix@gnu.org; Mon, 08 May 2017 11:41:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:36379) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d7kmU-0000oN-SD for bug-guix@gnu.org; Mon, 08 May 2017 11:41:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1d7kmU-0001KG-Ji for bug-guix@gnu.org; Mon, 08 May 2017 11:41:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: Received: from eggs.gnu.org ([2001:4830:134:3::10]:54318) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d7klz-0003fg-A6 for bug-guix@gnu.org; Mon, 08 May 2017 11:40:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d7klw-0000hN-KR for bug-guix@gnu.org; Mon, 08 May 2017 11:40:31 -0400 Received: from mail-pf0-x233.google.com ([2607:f8b0:400e:c00::233]:32836) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d7klw-0000hC-Dn for bug-guix@gnu.org; Mon, 08 May 2017 11:40:28 -0400 Received: by mail-pf0-x233.google.com with SMTP id e193so12343130pfh.0 for ; Mon, 08 May 2017 08:40:28 -0700 (PDT) Received: from apteryx (c-73-231-189-138.hsd1.ca.comcast.net. [73.231.189.138]) by smtp.gmail.com with ESMTPSA id d3sm21763376pgc.37.2017.05.08.08.40.26 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 08 May 2017 08:40:26 -0700 (PDT) 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: 26833@debbugs.gnu.org Problem: When using multiple substitute servers, if one of the server is temporarily unreachable, `guix substitute --substitute' will throw an exception. Example (while bayfront server was down, attempting to build a package only available locally (emacs-dvc)): --8<---------------cut here---------------start------------->8--- guix package -i emacs-dvc ;;; note: source file /home/maxim/.config/guix/latest/gnu/packages/emacs.scm ;;; newer than compiled /home/maxim/.config/guix/latest/gnu/packages/emacs.go ;;; note: source file /home/maxim/.config/guix/latest/gnu/packages/emacs.scm ;;; newer than compiled /gnu/store/nqy9m6hhnkkfwr5wyq5bac96v9s9hc9i-guix-0.12.0-9.25a4/lib/guile/2.0/site-ccache/gnu/packages/emacs.go ;;; note: source file /home/maxim/.config/guix/latest/gnu/packages/emacs.scm ;;; newer than compiled /run/current-system/profile/lib/guile/2.0/site-ccache/gnu/packages/emacs.go ;;; note: source file /home/maxim/.config/guix/latest/gnu/packages/emacs.scm ;;; newer than compiled /home/maxim/.cache/guile/ccache/2.0-LE-8-2.0/home/maxim/src/guix/gnu/packages/emacs.scm.go The following package will be installed: emacs-dvc trunk-1.591 /gnu/store/sraxmg5qz9i4338s4ks7asgy4v68dgqs-emacs-dvc-trunk-1.591 > substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0% substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0% Downloading https://bayfront.guixsd.org/nar/gzip/6h7ym07plwxfn4zq53ld8zfpbx3a09al-at-spi2-core-2.22.0 (1.1MiB installed)... guix substitute: error: connect: No route to host killing process 13896 killing process 13896: No such process --8<---------------cut here---------------end--------------->8--- Expected: Since multiple substitute servers are being used, rather than bombing out on the first unavailable one, `guix substitute --substitute' (or any other command implicated with substitute servers) should simply warn about it before attempting the next one. Bonus point: `guix substitute --query' should also print a warning message that substitute server X couldn't be reached (it doesn't print anything about that right now, just skips to the next one).