diff options
author | Joey Hess <joey@kitenet.net> | 2012-06-06 16:56:48 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-06-06 16:56:48 -0400 |
commit | baf9c7102ec58b3b31ef9d6a9424cf5e749bcc04 (patch) | |
tree | 0df8235b6d42369487f7368de015922796b0ccdb | |
parent | a79aebbe2a15a05f7475b08d98279bb88ef07305 (diff) |
blog for the day
-rw-r--r-- | doc/design/assistant/blog/day_3__more_races.mdwn | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/doc/design/assistant/blog/day_3__more_races.mdwn b/doc/design/assistant/blog/day_3__more_races.mdwn new file mode 100644 index 000000000..9c1182842 --- /dev/null +++ b/doc/design/assistant/blog/day_3__more_races.mdwn @@ -0,0 +1,26 @@ +Today I worked on the race conditions, and fixed two of them. Both +were fixed by avoiding using `git add`, which looks at the files currently +on disk. Instead, `git annex watch` injects symlinks directly into git's +index, using `git update-index`. + +There is one bad race condition remaining. If multiple processes have a +file open for write, one can close it, and it will be added to the annex. +But then the other can still write to it. + +---- + +Getting away from race conditions for a while, I made `git annex watch` +not annex `.gitignore` and `.gitattributes` files. + +And, I made it handle running out of inotify descriptors. By default, +`/proc/sys/fs/inotify/max_user_watches` is 8192, and that's how many +directories inotify can watch. Now when it needs more, it will print +a nice message showing how to increase it with `sysctl`. + +FWIW, DropBox also uses inotify and has the same limit. It seems to not +tell the user how to fix it when it goes over. Here's what `git annex +watch` will say: + + Too many directories to watch! (Not watching ./dir4299) + Increase the limit by running: + echo fs.inotify.max_user_watches=81920 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p |