diff options
Diffstat (limited to 'doc/bugs/Git-annex_and_Microsoft_Office_files_on_OS_X/comment_1_0cf11096ceeb6cf93db5609a42a70641._comment')
-rw-r--r-- | doc/bugs/Git-annex_and_Microsoft_Office_files_on_OS_X/comment_1_0cf11096ceeb6cf93db5609a42a70641._comment | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/doc/bugs/Git-annex_and_Microsoft_Office_files_on_OS_X/comment_1_0cf11096ceeb6cf93db5609a42a70641._comment b/doc/bugs/Git-annex_and_Microsoft_Office_files_on_OS_X/comment_1_0cf11096ceeb6cf93db5609a42a70641._comment new file mode 100644 index 000000000..ae27704b2 --- /dev/null +++ b/doc/bugs/Git-annex_and_Microsoft_Office_files_on_OS_X/comment_1_0cf11096ceeb6cf93db5609a42a70641._comment @@ -0,0 +1,41 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 1""" + date="2017-06-09T17:52:00Z" + content=""" +This must have to do with the fsevents interface used on OSX. + +In Assistant.Threads.Committer.safeToAdd, when lsof detects +a file is still open for write by some process, it cancels +the add. This relies on events being received when files +get closed (closingTracked). + +In Utility.DirWatcher.FSEvents.watchDir, when an event has +eventFlagItemModified set, it treats that as a file add event. +The intent is to emulate inotify's handling of file add events when +files are closed. + +So, two theories: + +1. Perhaps eventFlagItemModified only gets set if the file + is actually modified. Ie, if MS office writes the file + and while it's being written another process opens it to read + it (perhaps to index the content), then if the other process + doesn't modify it, eventFlagItemModified is not set. + +2. Perhaps the way the assistant hard links/moves the file around + confuses the FSEvents handling. Perhaps there is an event with + eventFlagItemModified, but it's for the locked down file, or + something like that, so git-annex ignores it. + +In any case, I'm leaning toward thinking that closingTracked should +not be True for FSEvents. This bug report seems to show, conclusively, +that FSEvents does not have that property. If closingTracked was False, +as it is for KQueue, the assistant would postpone adding the file, +and keep retrying, around once per second, until it no longer had +any writers, and then add it. + +So, I've made that change. I suspect it fixes the bug, but it would +be pretty hard for me to test it. Could you please download tomorrow's +daily build of git-annex for OSX, and see if it fixes the problem? +"""]] |