GNU bug report logs - #21888
guix-publish gets ERROR when serve gtk+.

Previous Next

Package: guix;

Reported by: iyzsong <at> member.fsf.org

Date: Thu, 12 Nov 2015 16:33:02 UTC

Severity: normal

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

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 21888 in the body.
You can then email your comments to 21888 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#21888; Package guix. (Thu, 12 Nov 2015 16:33:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to iyzsong <at> member.fsf.org:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Thu, 12 Nov 2015 16:33:02 GMT) Full text and rfc822 format available.

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

From: 宋文武 <iyzsong <at> openmailbox.org>
To: bug-guix <at> gnu.org
Subject: guix-publish  gets ERROR when serve gtk+.
Date: Thu, 12 Nov 2015 12:41:04 +0800
can't substitute gtk+ from a guix-publish server, it fails with:

GET /nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2
In web/server/http.scm:
   117:27  1 (http-read #<<http-server> socket: #<input-output: so...>)
In unknown file:
           0 (peek-char #<input-output: socket 13>)
ERROR: In procedure fport_fill_input: Connection reset by peer





Information forwarded to bug-guix <at> gnu.org:
bug#21888; Package guix. (Thu, 12 Nov 2015 20:29:01 GMT) Full text and rfc822 format available.

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

From: ludo <at> gnu.org (Ludovic Courtès)
To: 宋文武 <iyzsong <at> openmailbox.org>
Cc: 21888 <at> debbugs.gnu.org, iyzsong <at> member.fsf.org
Subject: Re: bug#21888: guix-publish  gets ERROR when serve gtk+.
Date: Thu, 12 Nov 2015 21:28:00 +0100
宋文武 <iyzsong <at> openmailbox.org> skribis:

> can't substitute gtk+ from a guix-publish server, it fails with:
>
> GET /nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2
> In web/server/http.scm:
>    117:27  1 (http-read #<<http-server> socket: #<input-output: so...>)
> In unknown file:
>            0 (peek-char #<input-output: socket 13>)
> ERROR: In procedure fport_fill_input: Connection reset by peer

This means that the *client* closed the connection.  Could you check
what happened on the client side?

It may be more convenient to use wget on the client-side to reproduce
the problem.

TIA,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#21888; Package guix. (Fri, 13 Nov 2015 05:22:01 GMT) Full text and rfc822 format available.

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

From: 宋文武 <iyzsong <at> openmailbox.org>
To: ludo <at> gnu.org
Cc: 21888 <at> debbugs.gnu.org, iyzsong <at> member.fsf.org
Subject: Re: bug#21888: guix-publish  gets ERROR when serve gtk+.
Date: Fri, 13 Nov 2015 13:21:14 +0800
[Message part 1 (text/plain, inline)]
On 2015-11-13 04:28, ludo <at> gnu.org wrote:
> 宋文武 <iyzsong <at> openmailbox.org> skribis:
> 
>> can't substitute gtk+ from a guix-publish server, it fails with:
>> 
>> GET /nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2
>> In web/server/http.scm:
>>    117:27  1 (http-read #<<http-server> socket: #<input-output: 
>> so...>)
>> In unknown file:
>>            0 (peek-char #<input-output: socket 13>)
>> ERROR: In procedure fport_fill_input: Connection reset by peer
> 
> This means that the *client* closed the connection.  Could you check
> what happened on the client side?
> 
> It may be more convenient to use wget on the client-side to reproduce
> the problem.
OK, I attach logs of:
wget -qd 
'http://localhost:8080/nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2'
wget -qd 
'http://localhost:8080/nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk%2B-3.18.2'


[guix-publish-wget-gtk%2B (text/plain, attachment)]
[guix-publish-wget-gtk+ (text/plain, attachment)]

Information forwarded to bug-guix <at> gnu.org:
bug#21888; Package guix. (Fri, 13 Nov 2015 08:08:02 GMT) Full text and rfc822 format available.

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

From: ludo <at> gnu.org (Ludovic Courtès)
To: 宋文武 <iyzsong <at> openmailbox.org>
Cc: iyzsong <at> member.fsf.org, 21888 <at> debbugs.gnu.org
Subject: Re: bug#21888: guix-publish  gets ERROR when serve gtk+.
Date: Fri, 13 Nov 2015 09:07:10 +0100
宋文武 <iyzsong <at> openmailbox.org> skribis:

> ---request begin---
> GET /nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2 HTTP/1.1
> User-Agent: Wget/1.16.3 (linux-gnu)
> Accept: */*
> Accept-Encoding: identity
> Host: localhost:8080
> Connection: Keep-Alive
>
> ---request end---
>
> ---response begin---
> HTTP/1.1 404 Not Found
> Content-Length: 69
> Content-Type: text/plain;charset=utf-8
>
> ---response end---
> Registered socket 3 for persistent reuse.
> URI content encoding = 'utf-8'
> Skipping 69 bytes of body: [Resource not found: /nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2] done.

Here ‘guix publish’ returns 404, presumably because
/gnu/store/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2 is not on disk
or not valid.

Is this correct?

Now, does http://localhost/1dlz1am0qmj1579f5p6j5cvfx9l2aw50.narinfo
return?  It should also return 404, otherwise there’s an inconsistency.

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#21888; Package guix. (Fri, 13 Nov 2015 12:06:02 GMT) Full text and rfc822 format available.

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

From: iyzsong <at> member.fsf.org (宋文武)
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 21888 <at> debbugs.gnu.org
Subject: Re: bug#21888: guix-publish  gets ERROR when serve gtk+.
Date: Fri, 13 Nov 2015 20:05:11 +0800
ludo <at> gnu.org (Ludovic Courtès) writes:

> 宋文武 <iyzsong <at> openmailbox.org> skribis:
>
>> ---request begin---
>> GET /nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2 HTTP/1.1
>> User-Agent: Wget/1.16.3 (linux-gnu)
>> Accept: */*
>> Accept-Encoding: identity
>> Host: localhost:8080
>> Connection: Keep-Alive
>>
>> ---request end---
>>
>> ---response begin---
>> HTTP/1.1 404 Not Found
>> Content-Length: 69
>> Content-Type: text/plain;charset=utf-8
>>
>> ---response end---
>> Registered socket 3 for persistent reuse.
>> URI content encoding = 'utf-8'
>> Skipping 69 bytes of body: [Resource not found: /nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2] done.
>
> Here ‘guix publish’ returns 404, presumably because
> /gnu/store/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2 is not on disk
> or not valid.
>
> Is this correct?
No, the gtk+ item is valid, and replace 'gtk+' with 'gtk%2B' in the url
will make wget download it happily.
>
> Now, does http://localhost/1dlz1am0qmj1579f5p6j5cvfx9l2aw50.narinfo
> return?  It should also return 404, otherwise there’s an
> inconsistency.
for the narinfo, It does return 200.





Information forwarded to bug-guix <at> gnu.org:
bug#21888; Package guix. (Fri, 13 Nov 2015 13:30:03 GMT) Full text and rfc822 format available.

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

From: ludo <at> gnu.org (Ludovic Courtès)
To: iyzsong <at> member.fsf.org (宋文武)
Cc: 21888 <at> debbugs.gnu.org, David Thompson <davet <at> gnu.org>
Subject: Re: bug#21888: guix-publish  gets ERROR when serve gtk+.
Date: Fri, 13 Nov 2015 14:29:30 +0100
iyzsong <at> member.fsf.org (宋文武) skribis:

> ludo <at> gnu.org (Ludovic Courtès) writes:
>
>> 宋文武 <iyzsong <at> openmailbox.org> skribis:
>>
>>> ---request begin---
>>> GET /nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2 HTTP/1.1
>>> User-Agent: Wget/1.16.3 (linux-gnu)
>>> Accept: */*
>>> Accept-Encoding: identity
>>> Host: localhost:8080
>>> Connection: Keep-Alive
>>>
>>> ---request end---
>>>
>>> ---response begin---
>>> HTTP/1.1 404 Not Found
>>> Content-Length: 69
>>> Content-Type: text/plain;charset=utf-8
>>>
>>> ---response end---
>>> Registered socket 3 for persistent reuse.
>>> URI content encoding = 'utf-8'
>>> Skipping 69 bytes of body: [Resource not found: /nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2] done.
>>
>> Here ‘guix publish’ returns 404, presumably because
>> /gnu/store/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2 is not on disk
>> or not valid.
>>
>> Is this correct?
> No, the gtk+ item is valid, and replace 'gtk+' with 'gtk%2B' in the url
> will make wget download it happily.

Oooh, I see.  We’re missing a decoding phase here.  David?  :-)

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#21888; Package guix. (Fri, 13 Nov 2015 14:18:02 GMT) Full text and rfc822 format available.

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

From: "Thompson, David" <dthompson2 <at> worcester.edu>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 宋文武 <iyzsong <at> member.fsf.org>, 21888 <at> debbugs.gnu.org,
 David Thompson <davet <at> gnu.org>
Subject: Re: bug#21888: guix-publish gets ERROR when serve gtk+.
Date: Fri, 13 Nov 2015 09:17:09 -0500
On Fri, Nov 13, 2015 at 8:29 AM, Ludovic Courtès <ludo <at> gnu.org> wrote:
> iyzsong <at> member.fsf.org (宋文武) skribis:
>
>> ludo <at> gnu.org (Ludovic Courtès) writes:
>>
>>> 宋文武 <iyzsong <at> openmailbox.org> skribis:
>>>
>>>> ---request begin---
>>>> GET /nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2 HTTP/1.1
>>>> User-Agent: Wget/1.16.3 (linux-gnu)
>>>> Accept: */*
>>>> Accept-Encoding: identity
>>>> Host: localhost:8080
>>>> Connection: Keep-Alive
>>>>
>>>> ---request end---
>>>>
>>>> ---response begin---
>>>> HTTP/1.1 404 Not Found
>>>> Content-Length: 69
>>>> Content-Type: text/plain;charset=utf-8
>>>>
>>>> ---response end---
>>>> Registered socket 3 for persistent reuse.
>>>> URI content encoding = 'utf-8'
>>>> Skipping 69 bytes of body: [Resource not found: /nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2] done.
>>>
>>> Here ‘guix publish’ returns 404, presumably because
>>> /gnu/store/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2 is not on disk
>>> or not valid.
>>>
>>> Is this correct?
>> No, the gtk+ item is valid, and replace 'gtk+' with 'gtk%2B' in the url
>> will make wget download it happily.
>
> Oooh, I see.  We’re missing a decoding phase here.  David?  :-)

I don't know when I'll be able to fix it, but it sounds easy.  I'll
post a patch when I have time.

Thanks,

- Dave




Reply sent to ludo <at> gnu.org (Ludovic Courtès):
You have taken responsibility. (Wed, 08 Jun 2016 17:10:02 GMT) Full text and rfc822 format available.

Notification sent to iyzsong <at> member.fsf.org:
bug acknowledged by developer. (Wed, 08 Jun 2016 17:10:02 GMT) Full text and rfc822 format available.

Message #28 received at 21888-done <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: iyzsong <at> member.fsf.org (宋文武)
Cc: 21888-done <at> debbugs.gnu.org
Subject: Re: bug#21888: guix-publish  gets ERROR when serve gtk+.
Date: Wed, 08 Jun 2016 19:09:04 +0200
iyzsong <at> member.fsf.org (宋文武) skribis:

> ludo <at> gnu.org (Ludovic Courtès) writes:
>
>> 宋文武 <iyzsong <at> openmailbox.org> skribis:
>>
>>> ---request begin---
>>> GET /nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2 HTTP/1.1
>>> User-Agent: Wget/1.16.3 (linux-gnu)
>>> Accept: */*
>>> Accept-Encoding: identity
>>> Host: localhost:8080
>>> Connection: Keep-Alive
>>>
>>> ---request end---
>>>
>>> ---response begin---
>>> HTTP/1.1 404 Not Found
>>> Content-Length: 69
>>> Content-Type: text/plain;charset=utf-8
>>>
>>> ---response end---
>>> Registered socket 3 for persistent reuse.
>>> URI content encoding = 'utf-8'
>>> Skipping 69 bytes of body: [Resource not found: /nar/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2] done.
>>
>> Here ‘guix publish’ returns 404, presumably because
>> /gnu/store/1dlz1am0qmj1579f5p6j5cvfx9l2aw50-gtk+-3.18.2 is not on disk
>> or not valid.
>>
>> Is this correct?
> No, the gtk+ item is valid, and replace 'gtk+' with 'gtk%2B' in the url
> will make wget download it happily.

‘guix publish’ correctly decodes URIs in ‘request-path-components’, but
‘uri-decode’ does this:

--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> ,use(web uri)
scheme@(guile-user)> (uri-decode "/gtk+")
$12 = "/gtk "
scheme@(guile-user)> (string-ref $12 4)
$13 = #\space
--8<---------------cut here---------------end--------------->8---

I think that ‘uri-decode’ is right, and that Wget is wrong when it fails
to replace ‘+’ with ‘%2B’.

Regardless, the problem is that the faulty /nar/…-gtk+ URI comes from a
.narinfo generated by ‘guix publish’ itself.  The fix is for ‘guix
publish’ to properly percent-encode it in the narinfo.

Done in 93961f02987cf738d116cc85cc32d97c2a488222.

Thanks,
Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 07 Jul 2016 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 7 years and 295 days ago.

Previous Next


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