Subject: bug#62765: Python importer gets confused about network access

From: Simon Tournier <[email-masked]>
Date: Tue, 11 Apr 2023 17:07:43 +0200

Hi,

On mar., 11 avril 2023 at 09:32, Stephen Paul Weber <[email-masked]> wrote:
>>I cannot reproduce.
>
> Does the import work when you run it?

Yes and no. :-)

It depends the Guix revision.  Using a revision from January as 29efa27,
it works.  But using 86d580c from April, it fails with:

--8<---------------cut here---------------start------------->8---
Starting download of /tmp/guix-file.cB9cmQ
>From https://files.pythonhosted.org/packages/74/67/3008e4f0b97d9a5701c8ef3bf95f1941c5b0a620c8f88f32e849117f8dc0/num2words-0.5.12.tar.gz...
In procedure connect: Network is unreachable
--8<---------------cut here---------------end--------------->8---

which passes with 29efa27.  And indeed, using 86d580c, “guix import pypi
num2words -r” passes without any error, downloading from the exact same
URL. Hum?!

Well, I do not know which change impacts this regression.

Cheers,
simon

--8<---------------cut here---------------start------------->8---
$ guix import pypi -r gruut

Starting download of /tmp/guix-file.Vlu2YX
>From https://files.pythonhosted.org/packages/4c/74/40e0bff02cf4daa3908c440e2111b20490c82080259f0114d0cfe07ce126/gruut-2.3.4.tar.gz...
 ….4.tar.gz  72KiB                    7.4MiB/s 00:00 ▕██████████████████▏ 100.0%

Starting download of /tmp/guix-file.Fq9iuS
>From https://files.pythonhosted.org/packages/51/9f/7eff478e38913cc9930527ff40c9ebcb04744dfcd0ddd43bd5a1eb9565b7/gruut-ipa-0.13.0.tar.gz...
 ….13.0.tar.gz  99KiB                 8.7MiB/s 00:00 ▕██████████████████▏ 100.0%

Starting download of /tmp/guix-file.GgsRw5
>From https://files.pythonhosted.org/packages/76/c5/9dcb07bb44c7c66f89bdfb554d433c071ef7fed38d39d164716901db12b1/gruut_lang_en-2.0.0.tar.gz...
 …-2.0.0.tar.gz  14.5MiB             41.7MiB/s 00:00 ▕██████████████████▏ 100.0%
guix import: warning: Cannot guess requirements from source archive: no requires.txt file found.

Starting download of /tmp/guix-file.vXTdBs
>From https://files.pythonhosted.org/packages/2a/c8/efdb87403dae07cf20faf75449eae41898b71d6a8d4ebaf9c80d5be215f5/jsonlines-3.1.0.tar.gz...
 ….1.0.tar.gz  8KiB                   9.3MiB/s 00:00 ▕██████████████████▏ 100.0%

Starting download of /tmp/guix-file.qTFTjC
>From https://files.pythonhosted.org/packages/68/32/290ca20eb3a2b97ffa6ba1791fcafacb3cd2f41f539c96eb54cfc3cfcf47/jsonlines-3.1.0-py3-none-any.whl...
 …py3-none-any.whl  8KiB             10.2MiB/s 00:00 ▕██████████████████▏ 100.0%

Starting download of /tmp/guix-file.cB9cmQ
>From https://files.pythonhosted.org/packages/74/67/3008e4f0b97d9a5701c8ef3bf95f1941c5b0a620c8f88f32e849117f8dc0/num2words-0.5.12.tar.gz...
In procedure connect: Network is unreachable

Starting download of /tmp/guix-file.cB9cmQ
>From https://web.archive.org/web/20230411165120/https://files.pythonhosted.org/packages/74/67/3008e4f0b97d9a5701c8ef3bf95f1941c5b0a620c8f88f32e849117f8dc0/num2words-0.5.12.tar.gz...
In procedure connect*: Connection timed out
Trying to use Disarchive to assemble /tmp/guix-file.cB9cmQ...
could not find its Disarchive specification
failed to download "/tmp/guix-file.cB9cmQ" from "https://files.pythonhosted.org/packages/74/67/3008e4f0b97d9a5701c8ef3bf95f1941c5b0a620c8f88f32e849117f8dc0/num2words-0.5.12.tar.gz"
Backtrace:
          13 (primitive-load "/home/simon/.config/guix/current/bin/guix")
In guix/ui.scm:
   2300:7 12 (run-guix . _)
  2263:10 11 (run-guix-command _ . _)
In guix/scripts/import.scm:
    89:11 10 (guix-import . _)
In ice-9/boot-9.scm:
  1752:10  9 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In guix/scripts/import/pypi.scm:
    97:21  8 (_)
In guix/import/utils.scm:
    638:3  7 (recursive-import _ #:repo->guix-package _ #:guix-name _ #:version _ . _)
   600:31  6 (topological-sort _ #<procedure 7f444ff63a80 at guix/import/utils.scm:639:21 (node)> #<procedure 7f44557e8b00 at guix/import/utils.scm:645:21 (node)>)
In srfi/srfi-1.scm:
   586:29  5 (map1 _)
   586:29  4 (map1 (("gruut_lang_en" #f) ("jsonlines" #f) ("num2words" #f) ("python-crfsuite" #f)))
   586:29  3 (map1 (("jsonlines" #f) ("num2words" #f) ("python-crfsuite" #f)))
   586:17  2 (map1 (("num2words" #f) ("python-crfsuite" #f)))
In guix/import/utils.scm:
   630:33  1 (lookup-node "num2words" #f)
In ice-9/boot-9.scm:
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Wrong number of values returned to continuation (expected 2)
--8<---------------cut here---------------end--------------->8---