git-annex/Assistant
Joey Hess 635c9a1549 assistant: Detect stale git lock files at startup time, and remove them.
Extends the index.lock handling to other git lock files. I surveyed
all lock files used by git, and found more than I expected. All are
handled the same in git; it leaves them open while doing the operation,
possibly writing the new file content to the lock file, and then closes
them when done.

The gc.pid file is excluded because it won't affect the normal operation
of the assistant, and waiting for a gc to finish on startup wouldn't be
good.

All threads except the webapp thread wait on the new startup sanity checker
thread to complete, so they won't try to do things with git that fail
due to stale lock files. The webapp thread mostly avoids doing that kind of
thing itself. A few configurators might fail on lock files, but only if the
user is explicitly trying to run them. The webapp needs to start
immediately when the user has opened it, even if there are stale lock
files.

Arranging for the threads to wait on the startup sanity checker was a bit
of a bear. Have to get all the NotificationHandles set up before the
startup sanity checker runs, or they won't see its signal. Perhaps
the NotificationBroadcaster is not the best interface to have used for
this. Oh well, it works.

This commit was sponsored by Michael Jakl
2013-10-05 17:04:21 -04:00
..
Alert webapp: Better display of added files. 2013-07-10 15:37:40 -04:00
Install linux standalone auto-install icons 2013-07-09 20:50:41 -04:00
Pairing webapp can now set up gcrypt repos on ssh servers 2013-10-01 13:43:35 -04:00
Threads assistant: Detect stale git lock files at startup time, and remove them. 2013-10-05 17:04:21 -04:00
Types assistant: Detect stale git lock files at startup time, and remove them. 2013-10-05 17:04:21 -04:00
WebApp blind enabling of existing ssh and ssh gcrypt repos 2013-10-02 15:54:32 -04:00
XMPP When an XMPP server has SRV records, try them, but don't then fall back to the regular host if they all fail. 2013-07-20 21:18:55 -04:00
Alert.hs webapp: Better display of added files. 2013-07-10 15:37:40 -04:00
BranchChange.hs
Changes.hs use DList for the transfer queue 2013-04-25 01:33:44 -04:00
Commits.hs remove last use of TSet 2013-04-24 17:16:04 -04:00
Common.hs refactor alert button creation code 2013-04-04 01:48:26 -04:00
DaemonStatus.hs sync: support gcrypt 2013-09-09 10:02:15 -04:00
DeleteRemote.hs webapp: support adding existing gcrypt special remotes from removable drives 2013-09-18 15:55:31 -04:00
Drop.hs moved AssociatedFile definition 2013-07-04 02:36:02 -04:00
Gpg.hs webapp: Support storing encrypted git repositories on rsync.net. 2013-09-26 16:43:00 -04:00
Install.hs linux standalone auto-install icons 2013-07-09 20:50:41 -04:00
MakeRemote.hs enabling ssh gcrypt now works 2013-10-01 16:08:01 -04:00
Monad.hs Switch to MonadCatchIO-transformers for better handling of state while catching exceptions. 2013-05-19 14:16:36 -04:00
NamedThread.hs assistant: Detect stale git lock files at startup time, and remove them. 2013-10-05 17:04:21 -04:00
NetMessager.hs clarify notifyNetMessagerRestart 2013-08-24 13:49:04 -04:00
Pairing.hs Makefile now builds using cabal, taking advantage of cabal's automatic detection of appropriate build flags. 2013-02-27 02:39:22 -04:00
Pushes.hs
ScanRemotes.hs
Ssh.hs enabling ssh gcrypt now works 2013-10-01 16:08:01 -04:00
Sync.hs include HEAD in CanPush shas 2013-05-21 20:04:38 -04:00
TransferQueue.hs use DList for the transfer queue 2013-04-25 01:33:44 -04:00
TransferrerPool.hs moved AssociatedFile definition 2013-07-04 02:36:02 -04:00
TransferSlots.hs maintain pools of running transferkeys processes (untested) 2013-03-19 18:46:29 -04:00
WebApp.hs clean up build warnings with yesod 1.2, while still building with 1.1 2013-06-27 01:15:28 -04:00
XMPP.hs add status tag to all presence messages 2013-07-25 14:58:30 -04:00