diff options
author | 2017-06-09 14:18:58 -0400 | |
---|---|---|
committer | 2017-06-09 14:18:58 -0400 | |
commit | 59139af0514552cd05c006afeef6f2316b1cbda7 (patch) | |
tree | d772045589f2ba8e0637547ddc26a4f109c3a075 /doc | |
parent | 600829080f98afdd02f7e04b6b66f8387fc565ca (diff) |
disable closingTracked on OSX
Don't trust OSX FSEvents's eventFlagItemModified to be called when the last
writer of a file closes it; apparently that sometimes does not happen,
which prevented files from being quickly added.
This commit was sponsored by John Peloquin on Patreon.
Diffstat (limited to 'doc')
2 files changed, 49 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? +"""]] diff --git a/doc/forum/Git-annex_and_Microsoft_Office_files_on_OS_X/comment_1_71fdd5e7061d6deb357290057804cc27._comment b/doc/forum/Git-annex_and_Microsoft_Office_files_on_OS_X/comment_1_71fdd5e7061d6deb357290057804cc27._comment new file mode 100644 index 000000000..3cd1c5943 --- /dev/null +++ b/doc/forum/Git-annex_and_Microsoft_Office_files_on_OS_X/comment_1_71fdd5e7061d6deb357290057804cc27._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 1""" + date="2017-06-09T17:51:35Z" + content=""" +A bug was opened about this: +[[bugs/Git-annex_and_Microsoft_Office_files_on_OS_X]] +"""]] |