mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #14357 from amdprophet/close-keepalive-stream
clientv3: close streams after use in lessor keepAliveOnce method
This commit is contained in:
commit
12d63d100e
@ -397,7 +397,7 @@ func (l *lessor) closeRequireLeader() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *lessor) keepAliveOnce(ctx context.Context, id LeaseID) (*LeaseKeepAliveResponse, error) {
|
func (l *lessor) keepAliveOnce(ctx context.Context, id LeaseID) (karesp *LeaseKeepAliveResponse, ferr error) {
|
||||||
cctx, cancel := context.WithCancel(ctx)
|
cctx, cancel := context.WithCancel(ctx)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
@ -406,6 +406,15 @@ func (l *lessor) keepAliveOnce(ctx context.Context, id LeaseID) (*LeaseKeepAlive
|
|||||||
return nil, toErr(ctx, err)
|
return nil, toErr(ctx, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
if err := stream.CloseSend(); err != nil {
|
||||||
|
if ferr == nil {
|
||||||
|
ferr = toErr(ctx, err)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
err = stream.Send(&pb.LeaseKeepAliveRequest{ID: int64(id)})
|
err = stream.Send(&pb.LeaseKeepAliveRequest{ID: int64(id)})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, toErr(ctx, err)
|
return nil, toErr(ctx, err)
|
||||||
@ -416,7 +425,7 @@ func (l *lessor) keepAliveOnce(ctx context.Context, id LeaseID) (*LeaseKeepAlive
|
|||||||
return nil, toErr(ctx, rerr)
|
return nil, toErr(ctx, rerr)
|
||||||
}
|
}
|
||||||
|
|
||||||
karesp := &LeaseKeepAliveResponse{
|
karesp = &LeaseKeepAliveResponse{
|
||||||
ResponseHeader: resp.GetHeader(),
|
ResponseHeader: resp.GetHeader(),
|
||||||
ID: LeaseID(resp.ID),
|
ID: LeaseID(resp.ID),
|
||||||
TTL: resp.TTL,
|
TTL: resp.TTL,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user