Subject: bug#48756: guix offload: error: corrupt input while restoring archive from #<closed: file 7f68866bf770>

From: Ludovic Courtès <[email-masked]>
Date: Thu, 01 Jul 2021 15:05:54 +0200

Hi,

(+Cc: [email-masked], so we record the end of the story.)

Madhavan Krishnan <[email-masked]> skribis:

> 89747 pipe([8, 10])                     = 0

> 89748 execve("/gnu/store/6rn4l3h0p9x0m615pp1ynlv9v0743kl3-guix-1.2.0/bin/guix", ["/gnu/store/6rn4l3h0p9x0m615pp1ynlv9v0743kl3-guix-1.2.0/bin/guix", "authenticate"], 0x7ffe0b69df60 /* 7 vars */) = 0

> 89748 dup2(10, 2)                       = 2
> 89748 dup2(2, 1)                        = 1

> 89747 write(12, "sign 25:/etc/guix/signing-key.sec 64:a8c094df57101bf8684c4afe31e58bc03bf6200a1d009e7c5bfe8bad0a48fa61\n", 102 <unfinished ...>

[...]

> 89748 write(2, "/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)\n", 136) = 136

> 89747 read(8,  <unfinished ...>
> 89747 <... read resumed>"/", 1)         = 1

[...]

> 89747 write(2, "guix-daemon: nix/libutil/serialise.cc:15: virtual nix::BufferedSink::~BufferedSink(): Assertion `!bufPos' failed.\n", 114 <unfinished ...>

[...]

> 89747 --- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=89747, si_uid=0} ---

Now we know!  ‘guix-daemon’ hit the assertion failure above, which is a
bug.  That happens because while talking to the ‘guix authenticate’
subprocess, said process emits that warning:

  /gnu/store/…/bin/bash: warning: setlocale: LC_ALL: …

and guix-daemon reads the leading “/” and explodes, somehow.

However, it seems you’re running guix-daemon from Guix 1.2.0,
which is quite old, and chances are that the bug you hit has long been
fixed.

Could you try upgrading guix-daemon?

  https://guix.gnu.org/manual/en/html_node/Upgrading-Guix.html

Thanks,
Ludo’.