[bug] guix refresh nftables crashes

  • Done
  • quality assurance status badge
Details
4 participants
  • ???
  • kiasoc5
  • Maxim Cournoyer
  • Maxime Devos
Owner
unassigned
Submitted by
kiasoc5
Severity
normal
K
K
kiasoc5 wrote on 22 Oct 2022 03:55
(address . bug-guix@gnu.org)
20221022015532.76d66c05@aria
% guix refresh nftables
```
Backtrace:
13 (primitive-load "/home/kiasoc5/.config/guix/current/…")
In guix/ui.scm:
2263:7 12 (run-guix . _)
2226:10 11 (run-guix-command _ . _)
In ice-9/boot-9.scm:
1752:10 10 (with-exception-handler _ _ #:unwind? _ # _)
1752:10 9 (with-exception-handler _ _ #:unwind? _ # _)
In guix/store.scm:
656:37 8 (thunk)
2165:25 7 (run-with-store #<store-connection 256.99 6cf50eb53e60> …)
In guix/scripts/refresh.scm:
567:14 6 (_ _)
In srfi/srfi-1.scm:
634:9 5 (for-each #<procedure 6cf50ec23ba0 at guix/scripts/ref…> …)
In guix/scripts/refresh.scm:
367:10 4 (check-for-package-update #<package nftables@1.0.5 gnu…> …)
In srfi/srfi-1.scm:
858:15 3 (any1 #<procedure 6cf50ec23b40 at guix/upstream.scm:28…> …)
In guix/gnu-maintenance.scm:
834:10 2 (_ _ . _)
In ice-9/boot-9.scm:
1685:16 1 (raise-exception _ #:continuable? _)
1685:16 0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure getaddrinfo: Servname not supported for ai_socktype
```
--
M
M
Maxime Devos wrote on 22 Oct 2022 11:56
13f90fdb-fdbe-2a3e-9e5f-2d15bccf10a0@telenet.be
On 22-10-2022 03:55, kiasoc5 via Bug reports for GNU Guix wrote:
Toggle quote (5 lines)
> % guix refresh nftables
> [...]
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> In procedure getaddrinfo: Servname not supported for ai_socktype
> ```
I can reproduce this locally and don't know the cause.
Greetings,
Maxime
Attachment: OpenPGP_signature
?
(name . Maxime Devos)(address . maximedevos@telenet.be)
87y1t5pq5p.fsf@envs.net
Maxime Devos <maximedevos@telenet.be> writes:

Toggle quote (10 lines)
> On 22-10-2022 03:55, kiasoc5 via Bug reports for GNU Guix wrote:
>> % guix refresh nftables
>> [...]
>> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
>> In procedure getaddrinfo: Servname not supported for ai_socktype
>> ```
>
> I can reproduce this locally and don't know the cause.
>

It happens when the origin have both 'mirror://' and 'http://' urls,
current the html updater check for any url match 'http' or 'https', but
when updating it will just pick the first url, so when the first is
'mirror://' this error will come.

This patch should fix it:
From e9dfdc3a2031c25043cc8b6f4b08656d05024c16 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@member.fsf.org>
Date: Mon, 24 Oct 2022 16:35:18 +0800
Subject: [PATCH] gnu-maintenance: Don't try html updater on 'mirror://' urls.


* guix/gnu-maintenance.scm (latest-html-updatable-release): Use the first http
or https url for updating.
---
guix/gnu-maintenance.scm | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

Toggle diff (24 lines)
diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm
index 10a6ec05f1..4cd501e492 100644
--- a/guix/gnu-maintenance.scm
+++ b/guix/gnu-maintenance.scm
@@ -806,10 +806,16 @@ (define http-url?
(define (latest-html-updatable-release package)
"Return the latest release of PACKAGE. Do that by crawling the HTML page of
the directory containing its source tarball."
+ (define (http-url? url)
+ (match (string->uri url)
+ (#f #f)
+ (uri (let ((scheme (uri-scheme uri)))
+ (memq scheme '(http https))))))
(let* ((uri (string->uri
(match (origin-uri (package-source package))
((? string? url) url)
- ((url _ ...) url))))
+ ;; We need filter out possibly 'mirror://' urls.
+ ((? list? urls) (first (filter http-url? urls))))))
(custom (assoc-ref (package-properties package)
'release-monitoring-url))
(base (or custom
--
2.37.3
M
M
Maxim Cournoyer wrote on 12 Sep 2023 05:40
(name . ???)(address . iyzsong@envs.net)
87a5tsxdmw.fsf@gmail.com
Hi,

??? <iyzsong@envs.net> writes:

Toggle quote (17 lines)
> Maxime Devos <maximedevos@telenet.be> writes:
>
>> On 22-10-2022 03:55, kiasoc5 via Bug reports for GNU Guix wrote:
>>> % guix refresh nftables
>>> [...]
>>> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
>>> In procedure getaddrinfo: Servname not supported for ai_socktype
>>> ```
>>
>> I can reproduce this locally and don't know the cause.
>>
>
> It happens when the origin have both 'mirror://' and 'http://' urls,
> current the html updater check for any url match 'http' or 'https', but
> when updating it will just pick the first url, so when the first is
> 'mirror://' this error will come.

I ended up with honoring the first element of the URI, since support for
mirror:// URIs in (guix gnu-maintenance) was added recently (see commit
bdaef69556f68595e5ec0db1710bf8ad208abe20, "gnu-maintenance: Allow mirror
URLs to fallback to the generic HTML updater.").

The fix is pushed with commit 2a7f031ca9. Let me know if anything is
still causing problems!

--
Thanks,
Maxim
Closed
?
Your comment

This issue is archived.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 58697
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