From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1avzjn-0003KV-6b for mharc-grub-devel@gnu.org; Fri, 29 Apr 2016 00:09:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35608) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1avzjk-0003He-MN for grub-devel@gnu.org; Fri, 29 Apr 2016 00:09:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1avzjf-0005uW-Td for grub-devel@gnu.org; Fri, 29 Apr 2016 00:09:04 -0400 Received: from mail-lf0-x231.google.com ([2a00:1450:4010:c07::231]:33595) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1avzjf-0005uF-Lp for grub-devel@gnu.org; Fri, 29 Apr 2016 00:08:59 -0400 Received: by mail-lf0-x231.google.com with SMTP id y84so105417943lfc.0 for ; Thu, 28 Apr 2016 21:08:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding; bh=ofRvAkgtfH1/nzx7LpsXE5F4s6z138rVCIlf7LyJoOo=; b=sB9AHuispcuuv0KOXxowXZy+RtUNi2ty+2fJK+CsyHAyL9hlIH3olHGGYFbufpTKWY xD5G0uewEMi+8ffqK9k8mDWi//8rTgfVOPdYQ9GksEj7SywFL4oENDzSgdo1x8EBYX09 wmadI18KmX/BlWDpQUFP3QjSGlWNJP3ZuLKyGBAdM6R0FzFAuZP46I5nHcArdt5wrUJv GAcSFim73+qH7bwTuxGV7cYRCQ1M38gDB2+AutK4fingWdZzrHqbCxKtVR6/1pokPkip HDqLU/15zWWr7YO9Ta6VI2ajWvxLMi2N5sNQovYup5PREhyyQMIXpMwQvACoQu2AzeBb GMmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=ofRvAkgtfH1/nzx7LpsXE5F4s6z138rVCIlf7LyJoOo=; b=J7LjrSR+bLr6IOkaWicyDRgGnnF/O4bfSyxumy9o3JGDVVh5YVRzhugQKS5oa6X6oK fn+JeqOlHPrGoiszirgmpuqBhMvTrNjd/Xa1blzeX5JZy7k7U4grHtm3uFeP0PbCGTRs UcxIr8lURK4l4hKcs+jpuFH1xxCpvJzTaqKoDYGXMt8a6nZbXDAxhl35OCLuz/RxyvVa mXOCzKXox39ptv1KOXPYNL5fYKpHXa+LmuPnt2MyKR+xqq/0u93BZCznOWpqe+ZUj4XS xI55C2DT0BjmAMjnmuYRd5ln8xDxxid4RgTRkNHeoHLca5zGh2p51Fcf7kBCTGilgLng RNUg== X-Gm-Message-State: AOPr4FXtSVDdLZwFFQMLgy6i16BNc84MFacoNVE00luHut0gX5AOBNs9edROoE9h5G5ewQ== X-Received: by 10.25.24.170 with SMTP id 42mr7968344lfy.47.1461902938524; Thu, 28 Apr 2016 21:08:58 -0700 (PDT) Received: from [192.168.1.42] (ppp109-252-90-74.pppoe.spdop.ru. [109.252.90.74]) by smtp.gmail.com with ESMTPSA id sa9sm2039944lbb.38.2016.04.28.21.08.57 for (version=TLSv1/SSLv3 cipher=OTHER); Thu, 28 Apr 2016 21:08:57 -0700 (PDT) Subject: Re: gzio/http problem To: grub-devel@gnu.org References: <57224D3F.1080704@gmail.com> <16066843.M6gESN7E00@k> From: Andrei Borzenkov X-Enigmail-Draft-Status: N1110 Message-ID: <5722DE58.6020008@gmail.com> Date: Fri, 29 Apr 2016 07:08:56 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:4010:c07::231 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Apr 2016 04:09:05 -0000 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 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 >