guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Unable to add large (1.74 GB) file to store on i686


From: Ludovic Courtès
Subject: Re: Unable to add large (1.74 GB) file to store on i686
Date: Wed, 03 Sep 2014 09:47:53 +0200
User-agent: Gnus/5.130011 (Ma Gnus v0.11) Emacs/24.3 (gnu/linux)

address@hidden 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’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]