Merge pull request #565 from iamqizhao/master
Always close tracing when a streaming rpc goes wrong.
This commit is contained in:
@ -204,6 +204,9 @@ func (cs *clientStream) SendMsg(m interface{}) (err error) {
|
|||||||
cs.mu.Unlock()
|
cs.mu.Unlock()
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
|
if err != nil {
|
||||||
|
cs.finish(err)
|
||||||
|
}
|
||||||
if err == nil || err == io.EOF {
|
if err == nil || err == io.EOF {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -251,6 +254,7 @@ func (cs *clientStream) RecvMsg(m interface{}) (err error) {
|
|||||||
}
|
}
|
||||||
if err == io.EOF {
|
if err == io.EOF {
|
||||||
if cs.s.StatusCode() == codes.OK {
|
if cs.s.StatusCode() == codes.OK {
|
||||||
|
cs.finish(err)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return Errorf(cs.s.StatusCode(), cs.s.StatusDesc())
|
return Errorf(cs.s.StatusCode(), cs.s.StatusDesc())
|
||||||
@ -272,6 +276,11 @@ func (cs *clientStream) RecvMsg(m interface{}) (err error) {
|
|||||||
|
|
||||||
func (cs *clientStream) CloseSend() (err error) {
|
func (cs *clientStream) CloseSend() (err error) {
|
||||||
err = cs.t.Write(cs.s, nil, &transport.Options{Last: true})
|
err = cs.t.Write(cs.s, nil, &transport.Options{Last: true})
|
||||||
|
defer func() {
|
||||||
|
if err != nil {
|
||||||
|
cs.finish(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
if err == nil || err == io.EOF {
|
if err == nil || err == io.EOF {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user