From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#32161: seek out of range Date: Thu, 19 Jul 2018 18:03:24 +0200 Message-ID: <87fu0fqkkz.fsf@gnu.org> References: <87bmb9qea0.fsf@elephly.net> <87a7qtq7ls.fsf@elephly.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38231) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fgBPU-0007po-6k for bug-guix@gnu.org; Thu, 19 Jul 2018 12:04:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fgBPO-0007UM-7M for bug-guix@gnu.org; Thu, 19 Jul 2018 12:04:08 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:43431) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fgBPO-0007UG-40 for bug-guix@gnu.org; Thu, 19 Jul 2018 12:04:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fgBPN-0002FU-RY for bug-guix@gnu.org; Thu, 19 Jul 2018 12:04:01 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87a7qtq7ls.fsf@elephly.net> (Ricardo Wurmus's message of "Sun, 15 Jul 2018 09:30:07 +0200") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Ricardo Wurmus Cc: 32161@debbugs.gnu.org Hi Ricardo, Ricardo Wurmus skribis: > Ricardo Wurmus writes: > >> I=E2=80=99m getting this bug on berlin.guixsd.org. The store is several= hundred >> GB in size. I cannot reproduce this on a machine with a smaller store. > > This is not correct. I cannot reproduce this on a machine where > deduplication has been disabled. > >> --8<---------------cut here---------------start------------->8--- >> In guix/store/deduplication.scm: >> 62:18 1 (nar-sha256 _) >> In unknown file: >> 0 (seek # 0 1) >> >> ERROR: In procedure seek: >> Value out of range -2147483648 to 2147483647: 4770726968 >> @ hook-failed /gnu/store/qjxwff3fajh350chpswbb6x9q2m4c3sd-texlive-texmf-= 2017.drv - 256 builder for `/gnu/store/qjxwff3fajh350chpswbb6x9q2m4c3sd-tex= live-texmf-2017.drv' failed with exit code 1 >> --8<---------------cut here---------------end--------------->8--- For the record, this code can be executed through =E2=80=98guix offload=E2= =80=99, via =E2=80=98restore-file-set=E2=80=99. > Line 62 is (port-position wrapper). =E2=80=9Cseek=E2=80=9D takes an inte= ger as the > offset and the range it reports is that of the minimum and maximum > values of a 32 bit integer. I have some good news! I fixed this in Guile commit d677aca5c5e5b3a9f71af57243169904ba4a712c. Bad news, we can=E2=80=99t really work around it on the Guix side. There=E2=80=99s also another bug: the =E2=80=98write=E2=80=99 procedure of = a custom binary output port is never called when passing a bytevector bigger than 2^32. > So=E2=80=A6 does this mean that we need some other way of counting writte= n bytes > to get rid of =E2=80=9Ccounting-wrapper-port=E2=80=9D? Commit 83099892e0cf0d9c59f5e1a0774331026e48baa8 gets rid of it, but that=E2=80=99s mostly for aesthetic and performance reasons. > On berlin.guixsd.org I may have to temporarily disable deduplication. I=E2=80=99m not sure that=E2=80=99d help. Ludo=E2=80=99.