From 4101d340102bd21c7ad864fc681f83da00218c71 Mon Sep 17 00:00:00 2001 From: Roman Tamarov Date: Mon, 17 Nov 2025 15:47:12 +0300 Subject: [PATCH] add callbackErr in ListDirectoryEntries --- weed/filer/redis3/universal_redis_store.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/weed/filer/redis3/universal_redis_store.go b/weed/filer/redis3/universal_redis_store.go index de94feea0..7f7c388e3 100644 --- a/weed/filer/redis3/universal_redis_store.go +++ b/weed/filer/redis3/universal_redis_store.go @@ -140,6 +140,7 @@ func (store *UniversalRedis3Store) ListDirectoryEntries(ctx context.Context, dir dirListKey := genDirectoryListKey(string(dirPath)) counter := int64(0) + var callbackErr error err = listChildren(ctx, store, dirListKey, startFileName, func(fileName string) bool { if startFileName != "" { if !includeStartFile && startFileName == fileName { @@ -168,6 +169,7 @@ func (store *UniversalRedis3Store) ListDirectoryEntries(ctx context.Context, dir resEachEntryFunc, resEachEntryFuncErr := eachEntryFunc(entry) if resEachEntryFuncErr != nil { glog.V(0).InfofCtx(ctx, "failed to process eachEntryFunc for entry %q: %w", entry.Name(), resEachEntryFuncErr) + callbackErr = resEachEntryFuncErr return false } @@ -182,6 +184,10 @@ func (store *UniversalRedis3Store) ListDirectoryEntries(ctx context.Context, dir return true }) + if callbackErr != nil { + return lastFileName, fmt.Errorf("failed to process eachEntryFunc: %w", callbackErr) + } + return lastFileName, err }