Subject: Re: bug#32161: seek out of range
From: [email-masked] (Ludovic Courtès)
To: Ricardo Wurmus <[email-masked]>
Cc: [email-masked]
Date: Tue, 09 Oct 2018 09:31:17 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

[email-masked] (Ludovic Courtès) skribis:

> Ricardo Wurmus <[email-masked]> skribis:
>
>> Ricardo Wurmus <[email-masked]> writes:
>>
>>> I’m 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 #<output: string 11b20e0> 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-texlive-texmf-2017.drv' failed with exit code 1
>>> --8<---------------cut here---------------end--------------->8---
>
> For the record, this code can be executed through ‘guix offload’, via
> ‘restore-file-set’.
>
>> Line 62 is (port-position wrapper).  “seek” takes an integer 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’t really work around it on the Guix side.

Actually Guix commit 4f89a8eec69491b925f084381ea4de37527c9310 provides a
workaround.

Ludo’.