forked from TrueCloudLab/frostfs-s3-gw
[#178] wrapReader: Fix goroutine leak
In case of error in FrostFS.CreateObject wrapped reader can be blocked because of synchronous pipe. We have to read out all payload in such case. Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
This commit is contained in:
parent
52931663e1
commit
fe897ec588
4 changed files with 49 additions and 9 deletions
|
@ -469,6 +469,10 @@ func (n *layer) objectPutAndHash(ctx context.Context, prm PrmObjectCreate, bktIn
|
|||
})
|
||||
id, err := n.frostFS.CreateObject(ctx, prm)
|
||||
if err != nil {
|
||||
if _, errDiscard := io.Copy(io.Discard, prm.Payload); errDiscard != nil {
|
||||
n.reqLogger(ctx).Warn("failed to discard put payload, probably goroutine leaks", zap.Error(errDiscard))
|
||||
}
|
||||
|
||||
return 0, oid.ID{}, nil, err
|
||||
}
|
||||
return size, id, hash.Sum(nil), nil
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue