Subject: Seemingly pointless backtrace in "guix weather" in case of DNS errors

From: Maxime Devos <[email-masked]>
Date: Wed, 12 Jul 2023 23:54:30 +0200

When the server name can't be resolved (typically because of DNS 
problems, though NSS could be used for other resolvers), we get a 
backtrace+error message (see end-of-email).

Some kind of error message seems desirable, but:

  * the first warning
    ‘guix weather: waarschuwing: ci.guix.gnu.org: host not found: Naam 
of dienst is niet bekend’
    is redundant, it could be simplified to:

    ‘guix weather: waarschuwing: ci.guix.gnu.org: unknown host name’
    ‘hint: probably DNS problems exist, or the network is down’

  * it could be integrated in the per-server block, e.g.

https://ci.guix.gnu.org
   This host name could not be resolved, so only cached information
   is available.

   0.0% substituten beschikbaar (0 van de 3)
   grootte van substituten onbekend
   0,0 MiB op schijf (ongecomprimeerd)
   0,000 seconden per verzoek (0,0 seconden in totaal)
   3.575,7 verzoeken per seconde

   That seems nicer than the generic Unix ‘append stuff without regard
   to proper writing’ ‘guix foo: warning: bar: variant of bar’.

  * that backtrace provides no useful information whatsoever -- the
    previous warning message already told us that this host name
    could not be resolved.  The presence of this backtrace is also
    misleading, because in this case it is not indicating a bug
    in Guix (except in the sense that it is a bug in error reporting).

    As such, this backtrace (including the 'In procedure getaddrinfo')
    can be removed. (Note: I am only considering the DNS problems
    situation, the backtraces for other situations can stay.)

(Due to DNS problems, I can't check whether this has already been reported.)

Best regards,
Maxime Devos

--

$ guix weather libjami
1 pakketdistillaties aan het berekenen voor x86_64-linux...
op zoek naar 3 depotobjecten op https://ci.guix.gnu.org...
guix weather: waarschuwing: ci.guix.gnu.org: host not found: Naam of 
dienst is niet bekend
https://ci.guix.gnu.org ⛈
   0.0% substituten beschikbaar (0 van de 3)
   grootte van substituten onbekend
   0,0 MiB op schijf (ongecomprimeerd)
   0,000 seconden per verzoek (0,0 seconden in totaal)
   3.575,7 verzoeken per seconde
Backtrace:
           17 (primitive-load "/home/antipode/.config/guix/current/bi…")
In guix/ui.scm:
    2309:7 16 (run-guix . _)
   2272:10 15 (run-guix-command _ . _)
In ice-9/boot-9.scm:
   1752:10 14 (with-exception-handler _ _ #:unwind? _ # _)
In guix/scripts/weather.scm:
     601:9 13 (_)
In guix/build/utils.scm:
    727:23 12 (every* #<procedure 7fd2eeb6ed20 at guix/scripts/weath…> …)
In guix/scripts/weather.scm:
    603:21 11 (_ "https://ci.guix.gnu.org")
In ice-9/exceptions.scm:
    406:15 10 (_ _ _ _)
In ice-9/boot-9.scm:
   1752:10  9 (with-exception-handler _ _ #:unwind? _ # _)
In guix/scripts/weather.scm:
    266:24  8 (_)
In guix/ci.scm:
    218:15  7 (queued-builds _ _)
In guix/http-client.scm:
    107:28  6 (http-fetch _ #:port _ #:text? _ #:buffered? _ # _ # _ # …)
In guix/build/download.scm:
     468:4  5 (open-connection-for-uri _ #:timeout _ # _)
    469:14  4 (thunk)
     396:8  3 (open-socket-for-uri _ #:timeout _)
In unknown file:
            2 (getaddrinfo "ci.guix.gnu.org" "https" 32 #<undefined> # …)
In ice-9/boot-9.scm:
   1685:16  1 (raise-exception _ #:continuable? _)
   1683:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1683:16: In procedure raise-exception:
In procedure getaddrinfo: Naam of dienst is niet bekend