From: Andrei Borzenkov <arvidjaar@gmail.com>
To: grub-devel@gnu.org
Subject: Re: gzio/http problem
Date: Fri, 29 Apr 2016 07:08:56 +0300 [thread overview]
Message-ID: <5722DE58.6020008@gmail.com> (raw)
In-Reply-To: <CAEaD8JNYjH1whOLxoqcU6hH2FM297KpQtREb3SE7kVZzk93KiA@mail.gmail.com>
29.04.2016 00:54, Vladimir 'phcoder' Serbinenko пишет:
> HTTP code should never return short reads. The whole subsystem relies on
> never having short reads from any fs or network driver
>
HTTP code never returns short reads itself. But it sets EOF on socket in
case something bad happens, and in this case we return currently
received data to caller in net core.
if (!net->eof)
{
try++;
grub_net_poll_cards (GRUB_NET_INTERVAL +
(try * GRUB_NET_INTERVAL_ADDITION),
&net->stall);
}
else
return total;
Disallowing short reads means also we should also disallow files with
unknown size. I think that's unrealistic.
> Le ven. 29 avr. 2016 09:30, Stefan Fritsch <sf@sfritsch.de> a écrit :
>
>> On Thursday 28 April 2016 21:52:27, Stefan Fritsch wrote:
>>> You are right, I was misreading the second part of the code with
>>> the direct read. Now I wonder why the patch helped with our
>>> problem. I will do some more debugging.
>>
>> The real problem seems to be that http sometimes (depending on network
>> timing?) returns short reads but gzio does not check how many bytes
>> have actually been read. The looping in my patch for grub_bufio_read()
>> fixed this by never returning a short read.
>>
>> I guess two things should be fixed: gzio should check the return value
>> of grub_file_read(), and (assuming that other code depends on there
>> not being short reads, too) http should be fixed. Or maybe
>> grub_file_read() should get a loop that ensures that there are no
>> short reads?
>>
>>
>> _______________________________________________
>> Grub-devel mailing list
>> Grub-devel@gnu.org
>> https://lists.gnu.org/mailman/listinfo/grub-devel
>>
>
>
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel
>
next prev parent reply other threads:[~2016-04-29 4:09 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-28 11:11 [PATCH] Rewrite and fix grub_bufio_read() Stefan Fritsch
2016-04-28 17:49 ` Andrei Borzenkov
2016-04-28 19:52 ` Stefan Fritsch
2016-04-28 21:30 ` gzio/http problem (was: [PATCH] Rewrite and fix grub_bufio_read()) Stefan Fritsch
2016-04-28 21:54 ` Vladimir 'phcoder' Serbinenko
2016-04-29 4:08 ` Andrei Borzenkov [this message]
2016-04-29 21:00 ` gzio/http problem Stefan Fritsch
2016-04-30 6:21 ` Andrei Borzenkov
2016-04-29 3:50 ` [PATCH] Rewrite and fix grub_bufio_read() Andrei Borzenkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5722DE58.6020008@gmail.com \
--to=arvidjaar@gmail.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).