File: day_623__started_timeouts.mdwn

package info (click to toggle)
git-annex 8.20210223-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 68,764 kB
  • sloc: haskell: 70,359; javascript: 9,103; sh: 1,304; makefile: 212; perl: 136; ansic: 44
file content (17 lines) | stat: -rw-r--r-- 928 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Working this week on a long missing capability of git-annex: The ability to
time out, and perhaps retry, a transfer that has gotten stuck.

It's a lot harder than it sounds, because to get it right with no resource
leaks, every process and child thread that git-annex runs has to be stopped
by a timeout too, which the current code base was not designed for at all.
[[gory details here|todo/more_extensive_retries_to_mask_transient_failures]]

So far I have most processes being stopped, and that took 2 solid days.
This may take a while to finish. I do think though, that once the basic
operation of stopping a transfer is available, there will be other uses
besides timeouts. 

One I can think of already is, if a remote is being very slow, it might
make sense to stop a transfer from it and switch to using a different
remote. Another is that there could be a hotkey to skip the current
transfer, moving on to the next file.