mirror of
https://github.com/minio/minio.git
synced 2025-07-08 08:32:18 -04:00
track client disconnections properly for all ListObjects calls (#17804)
Currently ListObjects* calls were returning 200 OK for timed-out clients, this makes debugging via `mc admin trace` very hard.
This commit is contained in:
parent
3bc34ffd94
commit
a436fd513b
@ -1254,6 +1254,11 @@ func (z *erasureServerPools) ListObjectVersions(ctx context.Context, bucket, pre
|
|||||||
return loi, err
|
return loi, err
|
||||||
}
|
}
|
||||||
defer merged.truncate(0) // Release when returning
|
defer merged.truncate(0) // Release when returning
|
||||||
|
|
||||||
|
if contextCanceled(ctx) {
|
||||||
|
return ListObjectVersionsInfo{}, ctx.Err()
|
||||||
|
}
|
||||||
|
|
||||||
if versionMarker == "" {
|
if versionMarker == "" {
|
||||||
o := listPathOptions{Marker: marker}
|
o := listPathOptions{Marker: marker}
|
||||||
// If we are not looking for a specific version skip it.
|
// If we are not looking for a specific version skip it.
|
||||||
@ -1341,6 +1346,10 @@ func (z *erasureServerPools) ListObjects(ctx context.Context, bucket, prefix, ma
|
|||||||
loi.Objects = append(loi.Objects, objInfo)
|
loi.Objects = append(loi.Objects, objInfo)
|
||||||
return loi, nil
|
return loi, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if contextCanceled(ctx) {
|
||||||
|
return ListObjectsInfo{}, ctx.Err()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
merged, err := z.listPath(ctx, &opts)
|
merged, err := z.listPath(ctx, &opts)
|
||||||
@ -1354,6 +1363,10 @@ func (z *erasureServerPools) ListObjects(ctx context.Context, bucket, prefix, ma
|
|||||||
merged.forwardPast(opts.Marker)
|
merged.forwardPast(opts.Marker)
|
||||||
defer merged.truncate(0) // Release when returning
|
defer merged.truncate(0) // Release when returning
|
||||||
|
|
||||||
|
if contextCanceled(ctx) {
|
||||||
|
return ListObjectsInfo{}, ctx.Err()
|
||||||
|
}
|
||||||
|
|
||||||
// Default is recursive, if delimiter is set then list non recursive.
|
// Default is recursive, if delimiter is set then list non recursive.
|
||||||
objects := merged.fileInfos(bucket, prefix, delimiter)
|
objects := merged.fileInfos(bucket, prefix, delimiter)
|
||||||
loi.IsTruncated = err == nil && len(objects) > 0
|
loi.IsTruncated = err == nil && len(objects) > 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user