--- /dev/null
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 13"""
+ date="2021-11-02T19:20:23Z"
+ content="""
+@asakurareiko could you try this patch, and see if it
+fixes some/all of the remaining problems?
+
+ diff --git a/Database/Handle.hs b/Database/Handle.hs
+ index 9eb32b4e2..828c26df4 100644
+ --- a/Database/Handle.hs
+ +++ b/Database/Handle.hs
+ @@ -187,7 +187,7 @@ runSqliteRobustly tablename db a = do
+ -- will stop being busy eventually.
+ briefdelay
+ settle conn retries
+ - | e == Sqlite.ErrorIO -> do
+ + | e == Sqlite.ErrorIO || e == Sqlite.ErrorProtocol -> do
+ -- Could be a real IO error,
+ -- so don't retry indefinitely.
+ Sqlite.close conn
+
+If that doesn't work, it's possible this version might somehow work better.
+At least it would be worth a try as well:
+
+ diff --git a/Database/Handle.hs b/Database/Handle.hs
+ index 9eb32b4e2..e146ba675 100644
+ --- a/Database/Handle.hs
+ +++ b/Database/Handle.hs
+ @@ -182,7 +182,7 @@ runSqliteRobustly tablename db a = do
+ case r of
+ Right _ -> return conn
+ Left ex@(Sqlite.SqliteException { Sqlite.seError = e })
+ - | e == Sqlite.ErrorBusy -> do
+ + | e == Sqlite.ErrorBusy || e == Sqlite.ErrorProtocol-> do
+ -- Wait and retry any number of times; it
+ -- will stop being busy eventually.
+ briefdelay
+
+This second one might cause git-annex to get stuck and retry forever though,
+if it doesn't work.
+"""]]