Subject: bug#65714: guix-copy 32-bit integer limit

From: Efraim Flashner <[email-masked]>
Date: Wed, 6 Sep 2023 13:47:25 +0300

On Mon, Sep 04, 2023 at 11:55:19PM +0200, Ludovic Courtès wrote:
> Hi Efraim,
> 
> Efraim Flashner <[email-masked]> skribis:
> 
> > `guix copy` seems unable to deal with store items larger than
> > 2**32 bytes (about 4.3 GiB).
> >
> > (ins)efraim@3900XT ~$ guix copy --from=192.168.1.196 /gnu/store/0f8pgl9cyh8bknl50nw6yj9wykzm6ymc-texlivetexmf-20230313
> > retrieving 1 store item from '192.168.1.196'...
> > guix copy: error: implementation cannot deal with > 32-bit integers
> >
> > (ins)efraim@3900XT ~$ ssh 192.168.1.196 du -sch /gnu/store/0f8pgl9cyh8bknl50nw6yj9wykzm6ymc-texlivetexmf-20230313
> > 7.5G    /gnu/store/0f8pgl9cyh8bknl50nw6yj9wykzm6ymc-texlivetexmf-20230313
> > 7.5G    total
> 
> Hmm that vaguely rings a bell, but we’ve had things like texlive-texmf
> from the start and I think we’ve definitely been able to fetch them via
> the offload/copy code.
> 
> Are you able to copy other store items from that host?  Could there be
> another issue leading to a bogus diagnostic?

ins)efraim@3900XT ~$ ssh 192.168.1.196 guix archive --export --recursive /gnu/store/0f8pgl9cyh8bknl50nw6yj9wykzm6ymc-texlivetexmf-20230313 | guix archive --import
guix archive: error: hash of path `/gnu/store/0f8pgl9cyh8bknl50nw6yj9wykzm6ymc-texlivetexmf-20230313' has changed from `33df143f9607fcdbd0be68ee7612779d330ac2fefad5749429b8a5b5d2931886' to `ea77f319bd62d0c53b132d545e44a41baea385fd49ad21a94402299b09488085'!
Backtrace:
          13 (primitive-load "/home/efraim/.config/guix/current/bin/…")
In guix/ui.scm:
   2323:7 12 (run-guix . _)
  2286:10 11 (run-guix-command _ . _)
In ice-9/boot-9.scm:
  1752:10 10 (with-exception-handler _ _ #:unwind? _ # _)
In guix/status.scm:
    859:3  9 (_)
    839:4  8 (call-with-status-report _ _)
In ice-9/boot-9.scm:
  1752:10  7 (with-exception-handler _ _ #:unwind? _ # _)
In guix/store.scm:
   659:37  6 (thunk)
   1298:8  5 (call-with-build-handler #<procedure 7f934bb31f30 at g…> …)
  1719:22  4 (import-paths #<store-connection 256.99 7f934be42f50> #)
   729:14  3 (process-stderr _ _)
In guix/serialization.scm:
   122:12  2 (write-bytevector #vu8(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …) …)
In ice-9/boot-9.scm:
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure modulo: Wrong type argument in position 1: #<eof>

I'm running `guix gc --verify=contents,repair` on the other machine now
to make sure there's nothing wrong with the archive item.

-- 
Efraim Flashner   <[email-masked]>   רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted