channel-with-substitutes-available without network

  • Open
  • quality assurance status badge
Details
One participant
  • Simon Tournier
Owner
unassigned
Submitted by
Simon Tournier
Severity
normal
S
S
Simon Tournier wrote on 24 Apr 16:43 +0200
(address . bug-guix@gnu.org)
87jzkmbz3x.fsf@gmail.com
Hi,

Out of any network, I get this error:

Toggle snippet (6 lines)
$ guix time-machine --commit=1971d11d -- describe
guix time-machine: error: failed to load '/home/simon/.config//guix/channels.scm':
guix/build/download.scm:399:8: In procedure open-socket-for-uri:
In procedure getaddrinfo: Name or service not known

And that’s annoying. It comes from:

$ cat /home/simon/.config//guix/channels.scm
(use-modules (guix ci))

(list (channel-with-substitutes-available
%default-guix-channel
"https://ci.guix.gnu.org"))

as documented by section “Channels with Substitutes” [1].

Specifically, the error is raised by the procedure ’load*’ called by
’channel-list’ inside ’load-channels’. Other said, ’load*’ runs the
procedure ’channel-with-substitutes-available’ which asks network via
the procedure ’find-latest-commit-with-substitutes’.

I think this is incorrect; the correct behaviour seems trying to do as
most as possible. With the attached patch, I get:

Toggle snippet (8 lines)
$ ./pre-inst-env guix time-machine --commit=1971d11d -- describe
guix time-machine: warning: could not find available substitutes at https://ci.guix.gnu.org
guix 1971d11
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 1971d11db9ed9683d5036cd4c62deb564842e1f6

Obviously, the option ’-q’ allows to bypass the problem. :-) However,
it’s annoying because the default file channels.scm can be complex and
it still should work without any tweak, IMHO.

Well, the proposed fix is here to catch the error; maybe it could be
finer than #t.

WDYT?

Cheers,
simon


From 5955a4c3f913d1aa77ec3a27d6430f3dcf22aab6 Mon Sep 17 00:00:00 2001
Message-ID: <5955a4c3f913d1aa77ec3a27d6430f3dcf22aab6.1713969693.git.zimon.toutoune@gmail.com>
From: Simon Tournier <zimon.toutoune@gmail.com>
Date: Wed, 24 Apr 2024 16:39:10 +0200
Subject: [PATCH] ci: Catch error for channel with substitutes.

* guix/ci.scm (channel-with-substitutes-available): Catch all error when
running 'find-latest-commit-with-substitutes'. Move the warning when failing.

Change-Id: I352e07f14417f77c7ebf0f40a01c6a2e58b15d78
---
guix/ci.scm | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

Toggle diff (26 lines)
diff --git a/guix/ci.scm b/guix/ci.scm
index 5d16ee69d0..b2077448b0 100644
--- a/guix/ci.scm
+++ b/guix/ci.scm
@@ -336,10 +336,13 @@ (define (channel-with-substitutes-available chan url)
If no commit with available substitutes were found, the commit field is set to
false and a warning message is printed."
- (let ((commit (find-latest-commit-with-substitutes url)))
- (unless commit
- (warning (G_ "could not find available substitutes at ~a~%")
- url))
+ (let ((commit (catch #t
+ (lambda ()
+ (find-latest-commit-with-substitutes url))
+ (lambda _
+ (warning (G_ "could not find available substitutes at ~a~%")
+ url)
+ #false))))
(channel
(inherit chan)
(commit commit))))

base-commit: 10d0e2d3110e4be2bc6cfecb9a3abb83d8e1ddd6
--
2.41.0
S
S
Simon Tournier wrote on 5 Jun 10:14 +0200
(address . 70551@debbugs.gnu.org)
87jzj3rell.fsf@gmail.com
Hi,

CC: core team

On Wed, 24 Apr 2024 at 16:43, Simon Tournier <zimon.toutoune@gmail.com> wrote:

Toggle quote (93 lines)
> Out of any network, I get this error:
>
> --8<---------------cut here---------------start------------->8---
> $ guix time-machine --commit=1971d11d -- describe
> guix time-machine: error: failed to load '/home/simon/.config//guix/channels.scm':
> guix/build/download.scm:399:8: In procedure open-socket-for-uri:
> In procedure getaddrinfo: Name or service not known
> --8<---------------cut here---------------end--------------->8---
>
> And that’s annoying. It comes from:
>
> $ cat /home/simon/.config//guix/channels.scm
> (use-modules (guix ci))
>
> (list (channel-with-substitutes-available
> %default-guix-channel
> "https://ci.guix.gnu.org"))
>
> as documented by section “Channels with Substitutes” [1].
>
> Specifically, the error is raised by the procedure ’load*’ called by
> ’channel-list’ inside ’load-channels’. Other said, ’load*’ runs the
> procedure ’channel-with-substitutes-available’ which asks network via
> the procedure ’find-latest-commit-with-substitutes’.
>
> I think this is incorrect; the correct behaviour seems trying to do as
> most as possible. With the attached patch, I get:
>
> --8<---------------cut here---------------start------------->8---
> $ ./pre-inst-env guix time-machine --commit=1971d11d -- describe
> guix time-machine: warning: could not find available substitutes at https://ci.guix.gnu.org
> guix 1971d11
> repository URL: https://git.savannah.gnu.org/git/guix.git
> branch: master
> commit: 1971d11db9ed9683d5036cd4c62deb564842e1f6
> --8<---------------cut here---------------end--------------->8---
>
> Obviously, the option ’-q’ allows to bypass the problem. :-) However,
> it’s annoying because the default file channels.scm can be complex and
> it still should work without any tweak, IMHO.
>
> Well, the proposed fix is here to catch the error; maybe it could be
> finer than #t.
>
> WDYT?
>
> Cheers,
> simon
>
>
> 1: https://guix.gnu.org/manual/devel/en/guix.html#Channels-with-Substitutes
>
> From 5955a4c3f913d1aa77ec3a27d6430f3dcf22aab6 Mon Sep 17 00:00:00 2001
> Message-ID: <5955a4c3f913d1aa77ec3a27d6430f3dcf22aab6.1713969693.git.zimon.toutoune@gmail.com>
> From: Simon Tournier <zimon.toutoune@gmail.com>
> Date: Wed, 24 Apr 2024 16:39:10 +0200
> Subject: [PATCH] ci: Catch error for channel with substitutes.
>
> * guix/ci.scm (channel-with-substitutes-available): Catch all error when
> running 'find-latest-commit-with-substitutes'. Move the warning when failing.
>
> Change-Id: I352e07f14417f77c7ebf0f40a01c6a2e58b15d78
> ---
> guix/ci.scm | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/guix/ci.scm b/guix/ci.scm
> index 5d16ee69d0..b2077448b0 100644
> --- a/guix/ci.scm
> +++ b/guix/ci.scm
> @@ -336,10 +336,13 @@ (define (channel-with-substitutes-available chan url)
>
> If no commit with available substitutes were found, the commit field is set to
> false and a warning message is printed."
> - (let ((commit (find-latest-commit-with-substitutes url)))
> - (unless commit
> - (warning (G_ "could not find available substitutes at ~a~%")
> - url))
> + (let ((commit (catch #t
> + (lambda ()
> + (find-latest-commit-with-substitutes url))
> + (lambda _
> + (warning (G_ "could not find available substitutes at ~a~%")
> + url)
> + #false))))
> (channel
> (inherit chan)
> (commit commit))))
>
> base-commit: 10d0e2d3110e4be2bc6cfecb9a3abb83d8e1ddd6
> --
> 2.41.0

Friendly ping for this patch?


Cheers,
simon
S
S
Simon Tournier wrote on 5 Jun 10:09 +0200
control message for bug #70551
(address . control@debbugs.gnu.org)
87plsvret8.fsf@gmail.com
tags 70551 + patch
quit
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 70551@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 70551
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch