git-annex/Database
Joey Hess 3149a1e2fe
More robust handling of ErrorBusy when writing to sqlite databases
While ErrorBusy and other exceptions were caught and the write retried for
up to 10 seconds, it was still possible for git-annex to eventually
give up and error out without writing to the database. Now it will retry
as long as necessary.

This does mean that, if one git-annex process is suspended just as sqlite
has locked the database for writing, another git-annex that tries to write
it it might get stuck retrying forever. But, that could already happen when
opening the sqlite database, which retries forever on ErrorBusy. This is an
area where git-annex is known to not behave well, there's a todo about the
general case of it.

Sponsored-by: Dartmouth College's Datalad project
2022-10-17 15:56:19 -04:00
..
Keys avoid uncessary keys db writes; doubled speed! 2022-10-12 15:33:16 -04:00
Benchmark.hs eliminate single/multi writer distinction 2021-10-20 12:26:30 -04:00
ContentIdentifier.hs add annex.dbdir (WIP) 2022-08-11 16:58:53 -04:00
Export.hs add annex.dbdir (WIP) 2022-08-11 16:58:53 -04:00
Fsck.hs add annex.dbdir (WIP) 2022-08-11 16:58:53 -04:00
Handle.hs More robust handling of ErrorBusy when writing to sqlite databases 2022-10-17 15:56:19 -04:00
Init.hs use a subdirectory of annex.dbdir 2022-08-12 13:18:15 -04:00
Keys.hs avoid uncessary keys db writes; doubled speed! 2022-10-12 15:33:16 -04:00
Queue.hs fix MVar deadlock when sqlite commit fails 2022-06-06 12:16:55 -04:00
Types.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00