Skip to content

Commit 899bfb6

Browse files
authored
Merge pull request #17221 from justinsb/automated-cherry-pick-of-#17151-release-1.31
Automated cherry pick of #17151: s3 vfs: fix delete all versions to handle errors
2 parents e38af7d + da9a4b0 commit 899bfb6

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

util/pkg/vfs/s3fs.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,16 @@ func (p *S3Path) RemoveAllVersions(ctx context.Context) error {
194194
if err != nil {
195195
return fmt.Errorf("error listing all versions of file %s: %v", p, err)
196196
}
197-
versions = append(versions, page.Versions...)
198-
deleteMarkers = append(deleteMarkers, page.DeleteMarkers...)
197+
for _, version := range page.Versions {
198+
if aws.ToString(version.Key) == p.key {
199+
versions = append(versions, version)
200+
}
201+
}
202+
for _, marker := range page.DeleteMarkers {
203+
if aws.ToString(marker.Key) == p.key {
204+
deleteMarkers = append(deleteMarkers, marker)
205+
}
206+
}
199207
}
200208

201209
if len(versions) == 0 && len(deleteMarkers) == 0 {
@@ -237,10 +245,13 @@ func (p *S3Path) RemoveAllVersions(ctx context.Context) error {
237245

238246
klog.V(8).Infof("removing %d file/marker versions\n", len(request.Delete.Objects))
239247

240-
_, err = client.DeleteObjects(ctx, request)
248+
deleteResult, err := client.DeleteObjects(ctx, request)
241249
if err != nil {
242250
return fmt.Errorf("error removing %d file/marker versions: %v", len(request.Delete.Objects), err)
243251
}
252+
if len(deleteResult.Errors) > 0 {
253+
return fmt.Errorf("error removing file/marker versions: %v", deleteResult.Errors)
254+
}
244255
}
245256

246257
return nil

0 commit comments

Comments
 (0)