Back at this again after awhile. Ludovic Courtès <l...@gnu.org> writes:
> Hmm, some ideas of things to try: > > 1. Add (force-output port) after (write-file ...). No effect. > 2. Display the value of ‘x’ in ‘restore-file’ at the point where the > exception is raised. Haven't tried this yet. > 2. strace the substituter and/or ‘guix publish’ to see exactly what > happens on the wire. Is the end-of-file marker string sent? Is it > received? etc. Here's a snippet of the strace output: http://192.168.1.157/.../iw3jn6a1avv78pp5v2cv42vyh0d8zi0g-guile-toxcore-0.1-6a9fbe0 94.1% of 127.5 KiB) = 104 read(10, "vector tox-max-status-message-le"..., 7728) = 117 read(10, " "..., 7611) = 1448 read(10, "t-last-online (unwrap-tox tox) f"..., 6163) = 1448 read(10, "tox tox) nospam))\n\n(define/unwra"..., 4715) = 1448 read(10, " friend-number group-number)))\n\n"..., 3267) = 1448 read(10, ")))\n (if (negative? result)\n "..., 1819) = 1819 http://192.168.1.157/.../iw3jn6a1avv78pp5v2cv42vyh0d8zi0g-guile-toxcore-0.1-6a9fbe0 100.0% of 127.5 KiB) = 104 http://192.168.1.157/.../iw3jn6a1avv78pp5v2cv42vyh0d8zi0g-guile-toxcore-0.1-6a9fbe0 100.0% of 127.5 KiB) = 104 brk(0x41875000) = 0x41875000 mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3d2aaaf000 mremap(0x7f3d2aaaf000, 135168, 266240, MREMAP_MAYMOVE) = 0x7f3d2aa6e000 mremap(0x7f3d2aa6e000, 266240, 528384, MREMAP_MAYMOVE) = 0x7f3d2a9ed000 mremap(0x7f3d2a9ed000, 528384, 430080, MREMAP_MAYMOVE) = 0x7f3d2a9ed000 munmap(0x7f3d2a9ed000, 430080) = 0 http://192.168.1.157/.../iw3jn6a1avv78pp5v2cv42vyh0d8zi0g-guile-toxcore-0.1-6a9fbe0 100.0% of 127.5 KiB) = 104 open("/gnu/store/72qm7kc9phvsiw6j7xgn1ii0f6s9mx8i-guix-0.8.3b09332/share/locale/en_US.UTF-8/LC_MESSAGES/guix.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/gnu/store/72qm7kc9phvsiw6j7xgn1ii0f6s9mx8i-guix-0.8.3b09332/share/locale/en_US.utf8/LC_MESSAGES/guix.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/gnu/store/72qm7kc9phvsiw6j7xgn1ii0f6s9mx8i-guix-0.8.3b09332/share/locale/en_US/LC_MESSAGES/guix.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/gnu/store/72qm7kc9phvsiw6j7xgn1ii0f6s9mx8i-guix-0.8.3b09332/share/locale/en.UTF-8/LC_MESSAGES/guix.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/gnu/store/72qm7kc9phvsiw6j7xgn1ii0f6s9mx8i-guix-0.8.3b09332/share/locale/en.utf8/LC_MESSAGES/guix.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/gnu/store/72qm7kc9phvsiw6j7xgn1ii0f6s9mx8i-guix-0.8.3b09332/share/locale/en/LC_MESSAGES/guix.mo", O_RDONLY) = -1 ENOENT (No such file or directory) write(2, "guix substitute-binary: error: i"..., 62guix substitute-binary: error: invalid nar end-of-file marker ) = 62 exit_group(1) = ? +++ exited with 1 +++ I'm not sure what's going on here. I thought that maybe the substituter was getting tripped up by the Scheme code in the uncompressed nar, but I don't have any reason to believe that's true. Despite that, I tried to compress the nar with bzip2 just for fun, but I ran into another problem: warning: call to primitive-fork while multiple threads are running; further behavior unspecified. See "Processes" in the manual, for more information. I'm running a REPL server in addition to the web server, but I imagine the web server also spawns additional threads to handle requests, so either way 'filtered-output-port' won't work here. The return value of 'waitpid' for the bzip2 pid is: ((18764 . 256)) Thoughts on what to try next? I feel like I'm so close, but I keep running into walls that prevent me from making much progress. -- David Thompson Web Developer - Free Software Foundation - http://fsf.org GPG Key: 0FF1D807 Support the FSF: https://fsf.org/donate