aboutsummaryrefslogtreecommitdiff
path: root/Assistant/Threads
Commit message (Collapse)AuthorAge
...
* tested multi-daemon upgradeGravatar Joey Hess2013-11-24
|
* show version in upgrade alertGravatar Joey Hess2013-11-24
|
* add support for fully automatic upgradesGravatar Joey Hess2013-11-24
| | | | | | | | | The Upgrader avoids checking for upgrades on startup when it was just upgraded. This avoids an upgrade loop if something goes wrong. One example of something going wrong would be if the upgrade info file and the distribution file get out of sync (or the distribution file is cached in a proxy), so it thinks it has upgraded to a new version, but has really not.
* linux upgrade code debugged and workingGravatar Joey Hess2013-11-24
|
* completely untested linux upgrade codeGravatar Joey Hess2013-11-23
|
* queue and start download of git-annex from web, using git-annex, when ↵Gravatar Joey Hess2013-11-23
| | | | upgrade is started
* global webapp redirects, to finish upgradesGravatar Joey Hess2013-11-23
| | | | | | | | | | | | | | | | | When an automatic upgrade completes, or when the user clicks on the upgrade button in one webapp, but also has it open in another browser window/tab, we have a problem: The current web server is going to stop running in minutes, but there is no way to send a redirect to the web browser to the new url. To solve this, used long polling, so the webapp is always listening for urls it should redirect to. This allows globally redirecting every open webapp. Works great! Tested with 2 web browsers with 2 tabs each. May be useful for other purposes later too, dunno. The overhead is 2 http requests per page load in the webapp. Due to yesod's speed, this does not seem to noticibly delay it. Only 1 of the requests could possibly block the page load, the other is async.
* better UI flow through upgrade processGravatar Joey Hess2013-11-23
| | | | | Move button to enable automatic upgrades to an alert displayed after successful upgrade. Unclutters the UI and makes psychological sense.
* restart on upgrade is working, including automatic restartGravatar Joey Hess2013-11-23
| | | | | | | | | | Made alerts be able to have multiple buttons, so the alerts about upgrading can have a button that enables automatic upgrades. Implemented automatic upgrading when the program file has changed. Note that when an automatic upgrade happens, the webapp displays an alert about it for a few minutes, and then closes. This still needs work.
* got assistant upgrade detection to notice when I build a new version with ↵Gravatar Joey Hess2013-11-22
| | | | cabal build!
* assistant restart on upgradeGravatar Joey Hess2013-11-22
|
* watch git-annex program file to detect upgradesGravatar Joey Hess2013-11-22
| | | | | | | | | | | | | | | | | | | | | | | | Not yet wired up to restart the assistant on upgrade; that needs careful sanity checking to wait until the upgrade is done before restarting. Used the DirWatcher here, so it gets events for any changes to the directory containing the program file. (But not subdirs.) This is necessary in order to detect when the file is renamed as part of the upgrade, which an inotify on a single file would not detect. (Also, I have DirWatcher code, but not FileWatcher code.) Note that upgrades that remove or rename a whole directory tree containing the executable will *not* trigger this code. So eg, deleting and replacing the whole standalone tarball dir tree won't work -- but untarring it over top will. So should dpkg package upgrades. Added programPath, using a new GHC feature to find the full path to the executable. The fallback code for old GHC or unsupported OS is less good; its worst failure mode would be either failing to find the program, and so not checking for upgrades, or finding a git-annex that's in PATH, but is not the one running. This commit was sponsored by John Roepke.
* annex.autoupgrade settingGravatar Joey Hess2013-11-22
|
* remove debug codeGravatar Joey Hess2013-11-22
|
* fix inverted priorityGravatar Joey Hess2013-11-22
|
* use .info, allow multiple info files in same directoryGravatar Joey Hess2013-11-22
|
* upgrade alertsGravatar Joey Hess2013-11-21
| | | | | | | | | | | | | | | | | | The webapp will check twice a day, when the network is connected, to see if it can download a distributon upgrade file. If a newer version is found, display an upgrade alert. This will need the autobuilders to set UPGRADE_LOCATION to the url it can be downloaded from when building git-annex. Only builds with that set need automatic upgrade alerts. Currently, the upgrade page just requests the user manually download and upgrade it. But, all the info is provided to do automated upgrades in the future. Note that urls used will need to all be https. This commit was sponsored by Dirk Kraft.
* webapp: Check annex.version.Gravatar Joey Hess2013-11-17
|
* log missing index at notice priorityGravatar Joey Hess2013-11-13
|
* inverted logicGravatar Joey Hess2013-11-13
|
* better handling of missing index fileGravatar Joey Hess2013-11-13
|
* assistant: Notice on startup when the index file is corrupt, and auto-repair.Gravatar Joey Hess2013-11-13
|
* Improve local pairing behavior when two computers both try to start the ↵Gravatar Joey Hess2013-11-02
| | | | | | | | | | | | | | | | | pairing process separately. I was able to reproduce something very like this bug by starting pairing separately on both computers under poor network conditions (ie, weak wifi on my front porch). Neither computer showed an alert for the PairReq messages it was seeing (intermittently) from the other. So, I've made a new PairReq message that has not been seen before always make the alert pop up, even if the assistant thinks it is in the middle of its own pairing process (or even another pairing process with a different box on the LAN). (This shouldn't cause a rogue PairAck to disrupt a pairing process part way through.)
* better control character sanity checkGravatar Joey Hess2013-11-02
| | | | | | | | | The msg contains a haskell-escaped string, so control characters in it can also be escaped. So this didn't work before, really. Got rid of the \n check, because current pairing messages actually do contain a \n, after the ssh public key. Don't want to break back-compatability.
* webapp: remind user when using repositories that lack consistency checksGravatar Joey Hess2013-10-29
| | | | | | | | | | When starting up the assistant, it'll remind about the current repository, if it doesn't have checks. And when a removable drive is plugged in, it will remind if a repository on it lacks checks. Since that might be annoying, the reminders can be turned off. This commit was sponsored by Nedialko Andreev.
* add post-repair actionsGravatar Joey Hess2013-10-29
|
* fix stale git locks as part of repo repairGravatar Joey Hess2013-10-29
|
* move code around and rename thread; no functional changesGravatar Joey Hess2013-10-29
|
* automatically launch git repository repairGravatar Joey Hess2013-10-27
| | | | | | | | | | | | | | | | | | Added a RemoteChecker thread, that waits for problems to be reported with remotes, and checks if their git repository is in need of repair. Currently, only failures to sync with the remote cause a problem to be reported. This seems enough, but we'll see. Plugging in a removable drive with a repository on it that is corrupted does automatically repair the repository, as long as the corruption causes git push or git pull to fail. Some types of corruption do not, eg missing/corrupt objects for blobs that git push doesn't need to look at. So, this is not really a replacement for scheduled git repository fscking. But it does make the assistant more robust. This commit is sponsored by Fernando Jimenez.
* assistant: Support repairing git remotes that are locally accessibleGravatar Joey Hess2013-10-27
| | | | | | | | (eg, on removable drives) gcrypt remotes are not yet handled. This commit was sponsored by Sören Brunk.
* assistant: Automatically repair damanged git repository, if it can be done ↵Gravatar Joey Hess2013-10-26
| | | | without losing data.
* moved code out of webappGravatar Joey Hess2013-10-26
| | | | | No code changes, aside from some changes to lifting in code that turned out to be able to run in Assistant rather than Handler.
* assistant: When autostarted, wait 5 seconds before running the startup scan, ↵Gravatar Joey Hess2013-10-26
| | | | to avoid contending with the user's desktop login process.
* UI tweaksGravatar Joey Hess2013-10-22
|
* add git fsck to cronner, and UI for repository repair (not yet wired up)Gravatar Joey Hess2013-10-22
|
* git-recover-repository 1/2 doneGravatar Joey Hess2013-10-20
|
* update for LsTree type changeGravatar Joey Hess2013-10-17
| | | | in the config monitor, we want files relative to the top of the working directory
* cronner: run jobs triggered by remotes becoming connected (untested)Gravatar Joey Hess2013-10-13
|
* add remote fsck interfaceGravatar Joey Hess2013-10-11
| | | | | | | | | | | | | | | | | | | | Currently only implemented for local git remotes. May try to add support to git-annex-shell for ssh remotes later. Could concevably also be supported by some special remote, although that seems unlikely. Cronner user this when available, and when not falls back to fsck --fast --from remote git annex fsck --from does not itself use this interface. To do so, I would need to pass --fast and all other options that influence fsck on to the git annex fsck that it runs inside the remote. And that seems like a lot of work for a result that would be no better than cd remote; git annex fsck This may need to be revisited if git-annex-shell gets support, since it may be the case that the user cannot ssh to the server to run git-annex fsck there, but can run git-annex-shell there. This commit was sponsored by Damien Diederen.
* add config page for fsck, and alert with button when a fsck is runningGravatar Joey Hess2013-10-10
|
* queue downloads of keys that fsck finds with bad contentGravatar Joey Hess2013-10-10
|
* stop fsck when scheduled activity is removedGravatar Joey Hess2013-10-10
|
* got delay calculation backwardsGravatar Joey Hess2013-10-10
|
* fix option nameGravatar Joey Hess2013-10-10
|
* cronner builds, should work (untested)Gravatar Joey Hess2013-10-08
| | | | | | | I probably need to improve handling of the PleaseTerminate exception to kill the fsck process. Also, if fsck finds bad files, something needs to requeue downloads of them. Otherwise, this should work, but is probably quite buggy since I have only tested the pure code over the past 2 days.
* half way complete cronner thread to run scheduled activitiesGravatar Joey Hess2013-10-08
|
* import: Skip .git directories.Gravatar Joey Hess2013-10-07
|
* assistant: Detect stale git lock files at startup time, and remove them.Gravatar Joey Hess2013-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* watcher: Detect at startup time when there is a stale .git/lock, and remove ↵Gravatar Joey Hess2013-10-03
| | | | it so it does not interfere with the automatic commits of changed files.
* hlintGravatar Joey Hess2013-10-02
|