From 35977e119fa68ec586b7a5bb8b31be4e43f050cd Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Fri, 9 Jan 2026 15:18:35 -0800 Subject: [PATCH] Fix: Disable retry logic inside transactions --- weed/filer/abstract_sql/abstract_sql_store.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/weed/filer/abstract_sql/abstract_sql_store.go b/weed/filer/abstract_sql/abstract_sql_store.go index cd44aad34..69ea8d2ab 100644 --- a/weed/filer/abstract_sql/abstract_sql_store.go +++ b/weed/filer/abstract_sql/abstract_sql_store.go @@ -190,6 +190,9 @@ func (store *AbstractSqlStore) InsertEntry(ctx context.Context, entry *filer.Ent } if store.RetryableErrorCallback != nil { + if ctx.Value("tx") != nil { + return doInsert() + } return util.RetryUntil("InsertEntry", doInsert, store.RetryableErrorCallback) } return doInsert() @@ -223,6 +226,9 @@ func (store *AbstractSqlStore) UpdateEntry(ctx context.Context, entry *filer.Ent } if store.RetryableErrorCallback != nil { + if ctx.Value("tx") != nil { + return doUpdate() + } return util.RetryUntil("UpdateEntry", doUpdate, store.RetryableErrorCallback) } return doUpdate() @@ -280,6 +286,9 @@ func (store *AbstractSqlStore) DeleteEntry(ctx context.Context, fullpath util.Fu } if store.RetryableErrorCallback != nil { + if ctx.Value("tx") != nil { + return doDelete() + } return util.RetryUntil("DeleteEntry", doDelete, store.RetryableErrorCallback) } return doDelete() @@ -319,6 +328,9 @@ func (store *AbstractSqlStore) DeleteFolderChildren(ctx context.Context, fullpat } if store.RetryableErrorCallback != nil { + if ctx.Value("tx") != nil { + return doDeleteFolderChildren() + } return util.RetryUntil("DeleteFolderChildren", doDeleteFolderChildren, store.RetryableErrorCallback) } return doDeleteFolderChildren()