diff --git a/weed/filer/filer.go b/weed/filer/filer.go index cc7f6a336..36273afff 100644 --- a/weed/filer/filer.go +++ b/weed/filer/filer.go @@ -355,16 +355,16 @@ func (f *Filer) FindEntry(ctx context.Context, p util.FullPath) (entry *Entry, e if entry.GetS3ExpireTime().Before(time.Now()) && !entry.IsS3Versioning() { if delErr := f.doDeleteEntryMetaAndData(ctx, entry, true, false, nil); delErr != nil { glog.ErrorfCtx(ctx, "FindEntry doDeleteEntryMetaAndData %s failed: %v", entry.FullPath, delErr) - // Deletion failed - return entry as still existing rather than claiming it's gone - return entry, nil + // Return error to prevent serving expired content (safer than returning the entry) + return nil, fmt.Errorf("failed to delete expired entry %s: %w", entry.FullPath, delErr) } return nil, filer_pb.ErrNotFound } } else if entry.Crtime.Add(time.Duration(entry.TtlSec) * time.Second).Before(time.Now()) { if delErr := f.Store.DeleteOneEntry(ctx, entry); delErr != nil { glog.ErrorfCtx(ctx, "FindEntry DeleteOneEntry %s failed: %v", entry.FullPath, delErr) - // Deletion failed - return entry as still existing rather than claiming it's gone - return entry, nil + // Return error to prevent serving expired content (safer than returning the entry) + return nil, fmt.Errorf("failed to delete expired entry %s: %w", entry.FullPath, delErr) } return nil, filer_pb.ErrNotFound }