Merge branch 'master' of ssh://git-annex.branchable.com
This commit is contained in:
commit
3d48de183d
5 changed files with 62 additions and 0 deletions
|
@ -0,0 +1,8 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="http://joeyh.name/"
|
||||||
|
ip="209.250.56.102"
|
||||||
|
subject="ping?"
|
||||||
|
date="2014-03-19T20:29:12Z"
|
||||||
|
content="""
|
||||||
|
Could either greg or Schnouki please test with the current arm autobuild and see if you can connect to the webapp?
|
||||||
|
"""]]
|
|
@ -0,0 +1,28 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="http://joeyh.name/"
|
||||||
|
ip="209.250.56.102"
|
||||||
|
subject="moreinfo"
|
||||||
|
date="2014-03-19T20:49:47Z"
|
||||||
|
content="""
|
||||||
|
What I don't understand about this is, how does `open` fail due to a file being locked? This is Linux, it doesn't have mandatory locking that I know of, and git-annex certianly doesn't use such a thing.
|
||||||
|
|
||||||
|
I really need a way to reproduce this and/or a strace. As it is, I've never seen this reported by anyone else and don't understand the failure mode at all.
|
||||||
|
|
||||||
|
The relevant part of the code seems to be here:
|
||||||
|
|
||||||
|
[[!format haskell \"\"\"
|
||||||
|
setJournalFile :: JournalLocked -> FilePath -> String -> Annex ()
|
||||||
|
setJournalFile _jl file content = do
|
||||||
|
tmp <- fromRepo gitAnnexTmpMiscDir
|
||||||
|
createAnnexDirectory =<< fromRepo gitAnnexJournalDir
|
||||||
|
createAnnexDirectory tmp
|
||||||
|
-- journal file is written atomically
|
||||||
|
jfile <- fromRepo $ journalFile file
|
||||||
|
let tmpfile = tmp </> takeFileName jfile
|
||||||
|
liftIO $ do
|
||||||
|
writeBinaryFile tmpfile content
|
||||||
|
moveFile tmpfile jfile
|
||||||
|
\"\"\"]]
|
||||||
|
|
||||||
|
While there is some ctnl locking going on, it locks a special sentinal file, not the file it's writing to.
|
||||||
|
"""]]
|
|
@ -0,0 +1,8 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="http://joeyh.name/"
|
||||||
|
ip="209.250.56.102"
|
||||||
|
subject="ping?"
|
||||||
|
date="2014-03-19T20:54:57Z"
|
||||||
|
content="""
|
||||||
|
You had a patch, but never shared it. I'm curious to see it..
|
||||||
|
"""]]
|
|
@ -0,0 +1,8 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="http://joeyh.name/"
|
||||||
|
ip="209.250.56.102"
|
||||||
|
subject="ping?"
|
||||||
|
date="2014-03-19T20:24:23Z"
|
||||||
|
content="""
|
||||||
|
Have you tried running git-annex fsck?
|
||||||
|
"""]]
|
|
@ -0,0 +1,10 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="http://joeyh.name/"
|
||||||
|
ip="209.250.56.102"
|
||||||
|
subject="comment 1"
|
||||||
|
date="2014-03-19T20:52:08Z"
|
||||||
|
content="""
|
||||||
|
The reason this doesn't work is that, in indirect mode, git-annex looks at the current state of the symlink in the work tree to know what key is associated with a file. And an unlocked file has no symlink.
|
||||||
|
|
||||||
|
Direct mode avoids this problem, but at the expense of being less flexible and well, doing more work.
|
||||||
|
"""]]
|
Loading…
Add table
Add a link
Reference in a new issue