Subject: Re: bug#63794: Bad error reporting in case of 404 during downloading

From: Simon Tournier <[email-masked]>
Date: Tue, 30 May 2023 17:53:17 +0200

Hi,

I confirm a similar error building a commit on the top of 52fed8fbd7.

On mar., 30 mai 2023 at 00:05, Maxime Devos <[email-masked]> wrote:

>   guix-1.4.0-6.dc5430c  52.2MiB 
>   811.7Mi guix-1.4.0-6.dc5430c  52.2MiB 
>            1.46Gi guix-1.4.0-6.dc5430c  52.2MiB 
>                    1.70GiB/s 00:00 ▕▎                 ▏   1.7%Backtrace:
> In ice-9/boot-9.scm:
>    1752:10 19 (with-exception-handler _ _ #:unwind? _ # _)
> In unknown file:
>            18 (apply-smob/0 #<thunk 7f044ad172a0>)
> In ice-9/boot-9.scm:
>      724:2 17 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
> In ice-9/eval.scm:
>      619:8 16 (_ #(#(#<directory (guile-user) 7f044ad1cc80>)))
> In guix/ui.scm:
>     2300:7 15 (run-guix . _)
>    2263:10 14 (run-guix-command _ . _)
> In ice-9/boot-9.scm:
>    1752:10 13 (with-exception-handler _ _ #:unwind? _ # _)
>    1752:10 12 (with-exception-handler _ _ #:unwind? _ # _)
> In guix/scripts/substitute.scm:
>     854:15 11 (_)
>      646:2 10 (process-substitution _ _ _ #:cache-urls _ #:acl _ # _ # …)
> In ice-9/boot-9.scm:
>    1752:10  9 (with-exception-handler _ _ #:unwind? _ # _)
> In guix/scripts/substitute.scm:
>      463:7  8 (download-nar #<<narinfo> path: "/gnu/store/arcljcj925…> …)
> In ice-9/boot-9.scm:
>    1747:15  7 (with-exception-handler #<procedure 7f0441fd6690 at ic…> …)
>    1685:16  6 (raise-exception _ #:continuable? _)
>    1683:16  5 (raise-exception _ #:continuable? _)
>    1685:16  4 (raise-exception _ #:continuable? _)
>    1780:13  3 (_ #<&compound-exception components: (#<&error> #<&irri…>)
>    1685:16  2 (raise-exception _ #:continuable? _)
>    1683:16  1 (raise-exception _ #:continuable? _)
>    1685:16  0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> ERROR:
>    1. &http-get-error:
>        uri: #<<uri> scheme: https userinfo: #f host: 
> "bordeaux.guix.gnu.org" port: #f path: 
> "/nar/zstd/arcljcj925bcsavh66wdfd7ppln66g06-NetworkManager-1.42.6.tar.xz" 
> query: #f fragment: #f>
>        code: 404
>        reason: "Not Found"
>        headers: ((server . "nginx") (date . #<date nanosecond: 0 second: 
> 34 minute: 50 hour: 20 day: 29 month: 5 year: 2023 zone-offset: 0>) 
> (content-type text/plain (charset . "utf-8")) (content-length . 3) 
> (connection keep-alive))
>    2. &message: 
> "https://bordeaux.guix.gnu.org/nar/zstd/arcljcj925bcsavh66wdfd7ppln66g06-NetworkManager-1.42.6.tar.xz: 
> HTTP-download mislukt: 404 (\"Not Found\")"

--8<---------------cut here---------------start------------->8---
substituting /gnu/store/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz...
Backtrace:
          16 (primitive-load "/gnu/store/jpcpva9gg7l337d0icn88pf76l4…")
In guix/ui.scm:
   2263:7 15 (run-guix . _)
  2226:10 14 (run-guix-command _ . _)
In ice-9/boot-9.scm:
  1752:10 13 (with-exception-handler _ _ #:unwind? _ # _)
  1752:10 12 (with-exception-handler _ _ #:unwind? _ # _)
In guix/scripts/substitute.scm:
   856:15 11 (_)
    650:2 10 (process-substitution _ _ _ #:cache-urls _ #:acl _ # _ # …)
In ice-9/boot-9.scm:
  1752:10  9 (with-exception-handler _ _ #:unwind? _ # _)
In guix/scripts/substitute.scm:
    467:7  8 (download-nar #<<narinfo> path: "/gnu/store/26q8viimh3…> …)
In ice-9/boot-9.scm:
  1747:15  7 (with-exception-handler #<procedure 7f69e92f8840 at ic…> …)
  1685:16  6 (raise-exception _ #:continuable? _)
  1683:16  5 (raise-exception _ #:continuable? _)
  1685:16  4 (raise-exception _ #:continuable? _)
  1780:13  3 (_ #<&compound-exception components: (#<&error> #<&irri…>)
  1685:16  2 (raise-exception _ #:continuable? _)
  1683:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
ERROR:
  1. &http-get-error:
      uri: #<<uri> scheme: https userinfo: #f host: "bordeaux.guix.gnu.org" port: #f path: "/nar/zstd/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz" query: #f fragment: #f>
      code: 404
      reason: "Not Found"
      headers: ((server . "nginx") (date . #<date nanosecond: 0 second: 16 minute: 34 hour: 15 day: 30 month: 5 year: 2023 zone-offset: 0>) (content-type text/plain (charset . "utf-8")) (content-length . 3) (connection keep-alive))
  2. &message: "https://bordeaux.guix.gnu.org/nar/zstd/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz: HTTP download failed: 404 (\"Not Found\")"
substitution of /gnu/store/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz failed
guix build: error: corrupt input while restoring archive from #<closed: file 7f9e12807e70>
--8<---------------cut here---------------end--------------->8---

Ok, let try to manually build webkitgkt:

--8<---------------cut here---------------start------------->8---
simon@pfiuh07$ ./pre-inst-env guix build webkitgtk
The following derivation will be built:
  /gnu/store/gdvjm79zbi8nhdwgmk40n6k4rlmz2ndk-webkitgtk-2.40.1.drv
39,2 MB will be downloaded:
  /gnu/store/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz
substituting /gnu/store/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz...
Backtrace:
          16 (primitive-load "/gnu/store/jpcpva9gg7l337d0icn88pf76l4…")
In guix/ui.scm:
   2263:7 15 (run-guix . _)
  2226:10 14 (run-guix-command _ . _)
In ice-9/boot-9.scm:
  1752:10 13 (with-exception-handler _ _ #:unwind? _ # _)
  1752:10 12 (with-exception-handler _ _ #:unwind? _ # _)
In guix/scripts/substitute.scm:
   856:15 11 (_)
    650:2 10 (process-substitution _ _ _ #:cache-urls _ #:acl _ # _ # …)
In ice-9/boot-9.scm:
  1752:10  9 (with-exception-handler _ _ #:unwind? _ # _)
In guix/scripts/substitute.scm:
    467:7  8 (download-nar #<<narinfo> path: "/gnu/store/26q8viimh3…> …)
In ice-9/boot-9.scm:
  1747:15  7 (with-exception-handler #<procedure 7fb4c41a4660 at ic…> …)
  1685:16  6 (raise-exception _ #:continuable? _)
  1683:16  5 (raise-exception _ #:continuable? _)
  1685:16  4 (raise-exception _ #:continuable? _)
  1780:13  3 (_ #<&compound-exception components: (#<&error> #<&irri…>)
  1685:16  2 (raise-exception _ #:continuable? _)
  1683:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
ERROR:
  1. &http-get-error:
      uri: #<<uri> scheme: https userinfo: #f host: "bordeaux.guix.gnu.org" port: #f path: "/nar/zstd/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz" query: #f fragment: #f>
      code: 404
      reason: "Not Found"
      headers: ((server . "nginx") (date . #<date nanosecond: 0 second: 15 minute: 41 hour: 15 day: 30 month: 5 year: 2023 zone-offset: 0>) (content-type text/plain (charset . "utf-8")) (content-length . 3) (connection keep-alive))
  2. &message: "https://bordeaux.guix.gnu.org/nar/zstd/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz: HTTP download failed: 404 (\"Not Found\")"
substitution of /gnu/store/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz failed
guix build: error: some substitutes for the outputs of derivation `/gnu/store/crbrn417ksq4qjky3fw92z5902v3kn3s-webkitgtk-2.40.1.tar.xz.drv' failed (usually happens due to networking issues); try `--fallback' to build derivation from source 
--8<---------------cut here---------------end--------------->8---

Ah, ok let apply the suggestion:

--8<---------------cut here---------------start------------->8---
simon@pfiuh07$ ./pre-inst-env guix build webkitgtk --fallback
The following derivation will be built:
  /gnu/store/gdvjm79zbi8nhdwgmk40n6k4rlmz2ndk-webkitgtk-2.40.1.drv
39,2 MB will be downloaded:
  /gnu/store/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz
substituting /gnu/store/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz...
Backtrace:
          16 (primitive-load "/gnu/store/jpcpva9gg7l337d0icn88pf76l4…")
In guix/ui.scm:
   2263:7 15 (run-guix . _)
  2226:10 14 (run-guix-command _ . _)
In ice-9/boot-9.scm:
  1752:10 13 (with-exception-handler _ _ #:unwind? _ # _)
  1752:10 12 (with-exception-handler _ _ #:unwind? _ # _)
In guix/scripts/substitute.scm:
   856:15 11 (_)
    650:2 10 (process-substitution _ _ _ #:cache-urls _ #:acl _ # _ # …)
In ice-9/boot-9.scm:
  1752:10  9 (with-exception-handler _ _ #:unwind? _ # _)
In guix/scripts/substitute.scm:
    467:7  8 (download-nar #<<narinfo> path: "/gnu/store/26q8viimh3…> …)
In ice-9/boot-9.scm:
  1747:15  7 (with-exception-handler #<procedure 7fe73c0e33c0 at ic…> …)
  1685:16  6 (raise-exception _ #:continuable? _)
  1683:16  5 (raise-exception _ #:continuable? _)
  1685:16  4 (raise-exception _ #:continuable? _)
  1780:13  3 (_ #<&compound-exception components: (#<&error> #<&irri…>)
  1685:16  2 (raise-exception _ #:continuable? _)
  1683:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
ERROR:
  1. &http-get-error:
      uri: #<<uri> scheme: https userinfo: #f host: "bordeaux.guix.gnu.org" port: #f path: "/nar/zstd/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz" query: #f fragment: #f>
      code: 404
      reason: "Not Found"
      headers: ((server . "nginx") (date . #<date nanosecond: 0 second: 16 minute: 42 hour: 15 day: 30 month: 5 year: 2023 zone-offset: 0>) (content-type text/plain (charset . "utf-8")) (content-length . 3) (connection keep-alive))
  2. &message: "https://bordeaux.guix.gnu.org/nar/zstd/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz: HTTP download failed: 404 (\"Not Found\")"
substitution of /gnu/store/26q8viimh3r73549drqigvz07kl9v6pr-webkitgtk-2.40.1.tar.xz failed
guix build: error: corrupt input while restoring archive from #<closed: file 7f12092efee0>
--8<---------------cut here---------------end--------------->8---

At the end, I need to do:

    ./pre-inst-env guix build webkitgtk -S --no-substitutes

but I do not necessary want to rebuild all.

Well, all in all, I agree with Maxime that the backtrace is ugly, the
message misleading and last that various options should be tried
automatically (for fixed-outputs).

Cheers,
simon