pypi import: ungraceful exit when recursively importing unknown package

OpenSubmitted by Ricardo Wurmus.
Details
2 participants
  • Ricardo Wurmus
  • zimoun
Owner
unassigned
Severity
normal
R
R
Ricardo Wurmus wrote on 7 Dec 2021 12:26
(address . bug-guix@gnu.org)
87ee6oven6.fsf@elephly.net
When using the pypi importer, a typo in the package name leads to an
ugly backtrace:

Toggle snippet (26 lines)
./pre-inst-env guix import pypi -r pytestrerunfailures
following redirection to `https://pypi.org/pypi/pytestrerunfailures/json/'...
Backtrace:
In ice-9/boot-9.scm:
1752:10 9 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
In unknown file:
8 (apply-smob/0 #<thunk 7f3f0d996f60>)
In ice-9/boot-9.scm:
724:2 7 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
In ice-9/eval.scm:
619:8 6 (_ #(#(#<directory (guile-user) 7f3f0d990c80>)))
In guix/ui.scm:
2206:7 5 (run-guix . _)
2169:10 4 (run-guix-command _ . _)
In guix/scripts/import.scm:
124:11 3 (guix-import . _)
In guix/scripts/import/pypi.scm:
96:18 2 (guix-import-pypi . _)
In guix/import/utils.scm:
498:27 1 (recursive-import "pytestrerunfailures" #:repo->guix-package _ #:guix-name _ …)
488:33 0 (lookup-node "pytestrerunfailures" #f)

guix/import/utils.scm:488:33: In procedure lookup-node:
Wrong number of values returned to continuation (expected 2)

--
Ricardo
Z
Z
zimoun wrote on 7 Dec 2021 14:20
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 52350@debbugs.gnu.org)
CAJ3okZ0WSucuM9DYV1ka-BzPMO95qbHcPso3dPxk__MYe6bYcw@mail.gmail.com
Hi Ricardo,

On Tue, 7 Dec 2021 at 12:28, Ricardo Wurmus <rekado@elephly.net> wrote:

Toggle quote (3 lines)
> When using the pypi importer, a typo in the package name leads to an
> ugly backtrace:

This is already tracker by patch#45984. Well, the patch fixes the
issue of "pypi" and other ones too (although some had probably been
fixed independently, I have not checked or rebased this old patch).
The patch had not been merged because we (with jeko) tried a
pair-programming hacking session to revamp all the error handling.
Well, we were not very far (not easy pair programming, remotely
neither :-)).

I do not have much time these days to concretely make this revamp.
Maybe, the initial patch could be applied as a stopgap waiting a clean
revamp.



Cheers,
simon
Z
Z
zimoun wrote on 8 Mar 11:09 +0100
(name . Ricardo Wurmus)(address . rekado@elephly.net)(address . 52350@debbugs.gnu.org)
87h7884uxi.fsf@gmail.com
Hi Ricardo,

On mar., 07 déc. 2021 at 11:26, Ricardo Wurmus <rekado@elephly.net> wrote:

Toggle quote (2 lines)
> ./pre-inst-env guix import pypi -r pytestrerunfailures

Toggle snippet (8 lines)
$ guix import pypi pytestrerunfailures
following redirection to `https://pypi.org/pypi/pytestrerunfailures/json/'...
guix import: error: failed to download meta-data for package 'pytestrerunfailures'

$ guix import pypi pytestrerunfailures -r
following redirection to `https://pypi.org/pypi/pytestrerunfailures/json/'...

Fixed by f7bb161445903c51d299307610403cb3de0fcc56, at least the ugly
backtrace. However, it is still unsatisfactory since the error is not
correctly handled.

I propose to close because the exit is now graceful -- at least less
ungraceful. :-)


Cheers,
simon
?