Ludo',
I should really send this message in my Drafts folder since 14/4... :-/
On 14/04/17 11:54, Ludovic Courtès wrote:
Toggle quote (16 lines)
> Tobias Geerinckx-Rice <me@tobias.gr> skribis:>> One weird HTTP response from a server will kill ‘guix substitute’:>> >> updating list of substitutes from 'https://foo'... 50.0%Backtrace:>> ... guix/ui.scm:1229:8: In procedure run-guix-command: >> guix/ui.scm:1229:8: Throw to key `bad-response' with args `("Bad >> Response-Line: ~s" (""))'. error: build failed: substituter >> `substitute' died unexpectedly>> >> Attached is a patch to ignore such bad responses. The offending >> .narinfo will be ignored for that session, and not cached at all. >> The result:> > I’m sure you expect this question: what bad responses did you get in > practice? :-)
In fact, not really. The error message looked unambiguous to me: theHTTP response (the first line returned to the client, e.g. "HTTP/1.1 200OK") was simply empty, throwing an exception.Interestingly, a newline seems to be required.Using http://bad.http.response.tobias.gras a substitute server triggersit. http://no.http.response.tobias.grdoes not. Toggle quote (2 lines)
> Usually that is a sign of a broken HTTP server.
I think it's actually something in-between me and the server. I'll takea closer look next time this happens.
Toggle quote (3 lines)
> Of course it’s widespread enough, we’d better handle it, either in > Guix or directly in (web client) in Guile;
As I read it, (web client) considers throwing a BAD-RESPONSE exceptionthe best or only way to deal with an error like this. I agree.
Toggle quote (2 lines)
> OTOH, if it’s a genuine problem, we’d better not hide it.
Well, we don't hide it, per se. Hence the error message.
I think throwing an unhandled exception is definitely the wrong thing todo here — this kills even ‘guix --keep-going --fallback’. I'm less sureabout the right place to do it
Kind regards,
T G-R