[email protected] 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 ‘sendfile’ call is made by ‘add-to-store’ (in ‘write-file’), so that would mean that the daemon process terminated or closed the connection unexpectedly. However, I can’t reproduce it on x86_64: --8<---------------cut here---------------start------------->8--- $ dd if=/dev/zero of=/data/src/BIG-FILE bs=1024 count=1750000 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 /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 = 13 scheme@(guile-user)> SIGPIPE $5 = 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’s ‘sendfile’ on the client side, and ‘read’ on the daemon side. Ludo’.
