GNU bug report logs - #18831
Error handling in guix import?

Previous Next

Package: guix;

Reported by: Ian Denhardt <ian <at> zenhack.net>

Date: Sat, 25 Oct 2014 16:11:08 UTC

Severity: normal

Done: ludo <at> gnu.org (Ludovic Courtès)

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ian Denhardt <ian <at> zenhack.net>
To: bug-guix <at> gnu.org
Subject: Error handling in guix import?
Date: Sat, 25 Oct 2014 05:19:17 -0400
[Message part 1 (text/plain, inline)]
So I was trying to play with the pypi importer, and (as a test) ran:

    guix import pypi schema

and got back:

    starting download of `/tmp/guix-file.5J1eOy' from `https://pypi.python.org/pypi/schema/json'...
    ;;; Failed to autoload make-session in (gnutls):
    ;;; ERROR: missing interface for module (gnutls)
    ERROR: In procedure module-lookup: Unbound variable: make-session
    failed to download "/tmp/guix-file.5J1eOy" from "https://pypi.python.org/pypi/schema/json"
    Backtrace:
    In ice-9/boot-9.scm:
     157: 13 [catch #t #<catch-closure 28ab1c0> ...]
    In unknown file:
       ?: 12 [apply-smob/1 #<catch-closure 28ab1c0>]
    In ice-9/boot-9.scm:
      63: 11 [call-with-prompt prompt0 ...]
    In ice-9/eval.scm:
     432: 10 [eval # #]
    In ice-9/boot-9.scm:
    2401: 9 [save-module-excursion #<procedure 28ca940 at ice-9/boot-9.scm:4045:3 ()>]
    4050: 8 [#<procedure 28ca940 at ice-9/boot-9.scm:4045:3 ()>]
    1724: 7 [%start-stack load-stack ...]
    1729: 6 [#<procedure 28e2ea0 ()>]
    In unknown file:
       ?: 5 [primitive-load "/home/isd/src/guix/scripts/guix"]
    In guix/ui.scm:
     776: 4 [run-guix-command import "pypi" "schema"]
    In guix/scripts/import.scm:
     109: 3 [guix-import "pypi" "schema"]
    In guix/import/pypi.scm:
     167: 2 [pypi->guix-package "schema"]
     112: 1 [latest-source-release #f]
    In unknown file:
       ?: 0 [find #<procedure 3b00920 at guix/import/pypi.scm:112:14 (release)> #f]
    
    ERROR: In procedure find:
    ERROR: In procedure find: Wrong type argument in position 2 (expecting list): #f


It's obvious from the stuff at the beginning that there's some
underlying issue to due with gnutls that's causing the url fetch to
fail. My hunch is that's just my system, However, it's perfectly
reasonable to expect it to fail under more normal circumstances -
e.g. you're not connected to a network.

I poked through the source a bit, and it looks like the importer is just
not checking for errors from (guix build download)'s url-fetch (which
returns #f on error), so when it fails you get a stack trace like the
above. We should do a proper check for download failures, and print an
intelligible error message.

-Ian
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 10 years and 259 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.