Subject: Re: bug#25719: "guix package -i" exception should be a normal error message

From: Danny Milosavljevic <[email-masked]>
Date: Wed, 2 Dec 2020 14:35:52 +0100

Hi zimoun,

On Tue, 01 Dec 2020 19:28:12 +0100
zimoun <[email-masked]> wrote:

> This old bug #25719 is about exception and error message.  See:
> 
>     <http://issues.guix.gnu.org/issue/25719>
> 
> On Tue, 14 Feb 2017 at 09:41, Danny Milosavljevic <[email-masked]> wrote:
> > When I have network problems sometimes I get a backtrace like this:  
> 
> First, do you still experiment such behaviour?  Since it 3 years old.

I haven't seen this particular exception in a long time.  I cannot tell whether
the actual usability has been fixed, though--it could be that only the servers
are more reliable and this code path is thus not currently being entered.

> > substitute: 1727: 3 [%start-stack load-stack #<procedure a97d60 at ice-9/boot-9.scm:4047:10 ()>]
> > substitute: 1732: 2 [#<procedure a99b70 ()>]
> > substitute: In unknown file:
> > substitute:    ?: 1 [primitive-load "/gnu/store/175nlv448nk5kagwwl3zyy2w4726qfz6-guix-0.12.0-4.d9da/bin/.guix-real"]
> > substitute: In guix/ui.scm:
> > substitute: 1228: 0 [run-guix-command substitute "--query"]
> > substitute: 
> > substitute: guix/ui.scm:1228:8: In procedure run-guix-command:
> > substitute: guix/ui.scm:1228:8: Throw to key `bad-response' with args `("Bad Response-Line: ~s" (""))'.
> >
> > It might make sense to
> >
> > (a) convert that into a normal runtime error message and  
> 
> What do you mean?

The above is an exception.

In this case the download failed--and unfortunately that is a completely normal
thing on the internet.  Therefore, that is not something you'd use an exception
for.

There is no added information that could help the user in the exception.
For example it doesn't list the URL--the one thing that would actually help.

> > (b) Fallback to substituteless building (maybe only for this thing).  
> 
> Is it not the case currently?

No, I'm pretty sure I had to manually specify "--fallback" like a week ago--otherwise
it would not fallback to building without substitutes, but it would just fail.