fix: DeleteMultipleObjects to finish even if cancelled + concurrent sets (#14038)

* Process sets concurrently.
* Disconnect context from request.
* Insert context cancellation checks.
* errFileNotFound and errFileVersionNotFound are ok, unless creating delete markers.
This commit is contained in:
Klaus Post
2022-01-06 10:47:49 -08:00
committed by GitHub
parent c27110e37d
commit 0e31cff762
7 changed files with 71 additions and 13 deletions

View File

@@ -611,6 +611,9 @@ func (client *storageRESTClient) DeleteVersions(ctx context.Context, volume stri
respBody, err := client.call(ctx, storageRESTMethodDeleteVersions, values, &buffer, -1)
defer xhttp.DrainBody(respBody)
if err != nil {
if contextCanceled(ctx) {
err = ctx.Err()
}
for i := range errs {
errs[i] = err
}