My fastest reproducer now is the following:
darcs.net # (cd dist; rm -rf Agda ~/.cache/darcs/; strace -f -olog
build/darcs/darcs get --debug-verbose http://code.haskell.org/Agda; )
After 5-10 seconds the error is:
Couldn't fetch
`b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985'
in subdir pristine.hashed from sources:
sf darcs.net # grep
b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985 dist/log
26142
stat("/tmp/darcs.net/dist/Agda/_darcs/pristine.hashed/b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985",
<unfinished ...>
26142
stat("/root/.cache/darcs/pristine.hashed/b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985",
0x7fd770875d30) = -1 ENOENT (No such file or directory)
26143
open("/root/.cache/darcs/pristine.hashed/b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985-new_45186a86b21849f69c948c18d3510725",
O_WRONLY|O_CREAT|O_TRUNC, 0666 <unfinished ...>
26143
lstat("/root/.cache/darcs/pristine.hashed/b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985-new_45186a86b21849f69c948c18d3510725",
{st_mode=S_IFREG|0644, st_size=138, ...}) = 0
26143
rename("/root/.cache/darcs/pristine.hashed/b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985-new_45186a86b21849f69c948c18d3510725",
"/root/.cache/darcs/pristine.hashed/b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985")
= 0
26142
stat("/tmp/darcs.net/dist/Agda/_darcs/pristine.hashed/b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985",
0x7fd7708778b0) = -1 ENOENT (No such file or directory)
26142
stat("/root/.cache/darcs/pristine.hashed/b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985",
{st_mode=S_IFREG|0644, st_size=138, ...}) = 0
26142
unlink("/root/.cache/darcs/pristine.hashed/b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985-new_45186a86b21849f69c948c18d3510725")
= -1 ENOENT (No such file or directory)
What is strange here is that rename/stat are done in different processes
(likely simultaneously):
26143
rename("/root/.cache/darcs/pristine.hashed/b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985-new_45186a86b21849f69c948c18d3510725",
"/root/.cache/darcs/pristine.hashed/b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985")
= 0
26142
stat("/tmp/darcs.net/dist/Agda/_darcs/pristine.hashed/b5153164a1034be95d7eaabdd69a90c3ec6896a39d4d53ecfa915679d54ce985",
0x7fd7708778b0) = -1 ENOENT (No such file or directory)
Looks like a race condition due to ghc-7.8 IO manager changes.
|