From 8de67b6c3899e7fea5a4a774301dd81bf74f010f Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Thu, 22 Oct 2026 02:27:05 -0700 Subject: [PATCH] filer: honor cancellation while collecting inode index entries The recursive walk paged through every directory without ever checking the context, so a cancelled delete could keep listing indefinitely. --- weed/filer/filer_inode_index.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/weed/filer/filer_inode_index.go b/weed/filer/filer_inode_index.go index 2608fad3b0..04e487ffbd 100644 --- a/weed/filer/filer_inode_index.go +++ b/weed/filer/filer_inode_index.go @@ -281,6 +281,9 @@ func (fsw *FilerStoreWrapper) collectInodeIndexEntriesRecursive(ctx context.Cont lastFileName := "" includeStartFile := false for { + if err := ctx.Err(); err != nil { + return err + } page := make([]*Entry, 0, PaginationSize) nextLastFileName, err := actualStore.ListDirectoryEntries(ctx, dirPath, lastFileName, includeStartFile, PaginationSize, func(entry *Entry) (bool, error) { page = append(page, entry)