Can now restart certain long-running git processes if they crash, and continue working.
Fuzz tests have shown that git cat-file --batch sometimes stops running. It's not yet known why (no error message; repo seems ok). But this is something we can deal with in the CoProcess framework, since all 3 types of long-running git processes should be restartable if they fail. Note that, as implemented, only IO errors are caught. So an error thrown by the reveiver, when it sees something that is not valid output from git cat-file (etc) will not cause a restart. I don't want it to retry if git commands change their output or are just outputting garbage. This does mean that if the command did a partial output and crashed in the middle, it would still not be restarted. There is currently no guard against restarting a command repeatedly, if, for example, it crashes repeatedly on startup.
This commit is contained in:
parent
8100cad9d5
commit
91c4dcfc69
6 changed files with 69 additions and 22 deletions
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -21,6 +21,8 @@ git-annex (4.20130522) UNRELEASED; urgency=low
|
|||
* XMPP: Fix a file descriptor leak.
|
||||
* Android: Added an "Open WebApp" item to the terminal's menu.
|
||||
Should work for Android devices that cannot auto-open the webapp on start.
|
||||
* Can now restart certain long-running git processes if they crash, and
|
||||
continue working.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Tue, 21 May 2013 18:22:46 -0400
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue