[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
?