From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Unable to add large (1.74 GB) file to store on i686 Date: Wed, 03 Sep 2014 09:47:53 +0200 Message-ID: <87d2bdjgba.fsf@gnu.org> References: <87r40117kj.fsf@netris.org> 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]:55625) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XP5IQ-0005Vy-Ep for guix-devel@gnu.org; Wed, 03 Sep 2014 03:48:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XP5IK-0002bc-Fp for guix-devel@gnu.org; Wed, 03 Sep 2014 03:48:02 -0400 Received: from hera.aquilenet.fr ([2a01:474::1]:56452) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XP5IK-0002bB-98 for guix-devel@gnu.org; Wed, 03 Sep 2014 03:47:56 -0400 In-Reply-To: <87r40117kj.fsf@netris.org> (mhw@netris.org's message of "Thu, 28 Aug 2014 01:55:56 -0400") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: mhw@netris.org Cc: guix-devel@gnu.org mhw@netris.org skribis: > Finally I decided to use 'wget' to download it, so that I could resume > partial transfers. I have the entire file now, but all of my attempts > to add it to the store fail. "guix download file:///path/to/file" > reports: > > guix download: error: sendfile: Broken pipe The =E2=80=98sendfile=E2=80=99 call is made by =E2=80=98add-to-store=E2=80= =99 (in =E2=80=98write-file=E2=80=99), so that would mean that the daemon process terminated or closed the connection unexpectedly. However, I can=E2=80=99t reproduce it on x86_64: --8<---------------cut here---------------start------------->8--- $ dd if=3D/dev/zero of=3D/data/src/BIG-FILE bs=3D1024 count=3D1750000 1750000+0 records in 1750000+0 records out 1792000000 bytes (1.8 GB) copied, 6.23156 s, 288 MB/s $ guix download file:///data/src/BIG-FILE=20 /gnu/store/jlx8nayvk34ij1sxqbn9c8dsqgqb9346-BIG-FILE 1p884s2sa6n4aw813bpnn1mfqyk4grqhig4wmiybi22da0zrfdjb --8<---------------cut here---------------end--------------->8--- Was it on a 32-bit platform? > I also attempted to add it using 'add-to-store', which exited the > process ungracefully without printing an error message: > > mhw:~/guix-core-updates$ ./pre-inst-env guile > GNU Guile 2.0.11 > Copyright (C) 1995-2014 Free Software Foundation, Inc. > > Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. > This program is free software, and you are welcome to redistribute it > under certain conditions; type `,show c' for details. > > Enter `,help' for help. > scheme@(guile-user)> ,use (guix) > scheme@(guile-user)> (define %store (open-connection)) > scheme@(guile-user)> (add-to-store %store "texlive-20140525-texmf.tar.xz"= #f "sha256" "/home/mhw/texlive-20140525-texmf.tar.xz") > mhw:~/guix-core-updates$ echo $? > 141 This is the same problem: --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> (status:term-sig 141) $4 =3D 13 scheme@(guile-user)> SIGPIPE $5 =3D 13 --8<---------------cut here---------------end--------------->8--- > Any ideas? No. :-/ I would run guix-daemon in gdb or strace, and follow the child process to exactly how it terminates. > Does adding files to the store entail mapping them into memory? No: it=E2=80=99s =E2=80=98sendfile=E2=80=99 on the client side, and =E2=80= =98read=E2=80=99 on the daemon side. Ludo=E2=80=99.