[[!comment format=mdwn
 username="joey"
 subject="""comment 1"""
 date="2021-01-04T17:50:55Z"
 content="""
All of this is explained by --time-limit being implemented as a
hack that throws an exception. Problem being that, the new streaming seeker
checks matchers in a separate thread and having that thread die of an
exception probably causes the hang. Also, since it checks the matcher
before streaming through git, there's a buffer of perhaps many files
that builds up before the time limit is reached, so those can go on to be
processed, even after it's said the time limit is reached. Aaad, since it
runs cleanup actions, this might leave fsck with its database closed
but trying to use it.

--time-limit could be removed from git-annex entirely. The `timeout`
command can be used with git-annex. But fsck db flush and close doesn't
happen when git-annex gets SIGINT and do with --time-limit. So this would
need maybe a SIGINT handler that runs cleanup actions? And then git-annex
would run some perhaps expensive cleanup actions whenever ctrl-c'd, which
might not be desirable since normally that's not necessary.

Or, it needs to not be implemented in this hackish way, but as another
check that's done before starting processing a seeked file.
"""]]
