This repository was archived by the owner on Jun 14, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 121
This repository was archived by the owner on Jun 14, 2023. It is now read-only.
close gRPCReporter error #129
Copy link
Copy link
Closed
Milestone
Description
when close gRPCReporter, error like this
go2sky-gRPC2021/09/22 17:03:57 send closing error rpc error: code = Canceled desc = grpc: the client connection is closing
go2sky-gRPC2021/09/22 17:03:57 rpc error: code = Canceled desc = grpc: the client connection is closing
if r.sendCh != nil,r.closeStream and r.closeGRPCConn (line 268) maybe called after r.closeGRPCConn (line 236)
Lines 232 to 237 in b16c9f0
| func (r *gRPCReporter) Close() { | |
| if r.sendCh != nil { | |
| close(r.sendCh) | |
| } | |
| r.closeGRPCConn() | |
| } |
Lines 247 to 273 in b16c9f0
| func (r *gRPCReporter) initSendPipeline() { | |
| if r.traceClient == nil { | |
| return | |
| } | |
| go func() { | |
| StreamLoop: | |
| for { | |
| stream, err := r.traceClient.Collect(metadata.NewOutgoingContext(context.Background(), r.md)) | |
| if err != nil { | |
| r.logger.Printf("open stream error %v", err) | |
| time.Sleep(5 * time.Second) | |
| continue StreamLoop | |
| } | |
| for s := range r.sendCh { | |
| err = stream.Send(s) | |
| if err != nil { | |
| r.logger.Printf("send segment error %v", err) | |
| r.closeStream(stream) | |
| continue StreamLoop | |
| } | |
| } | |
| r.closeStream(stream) | |
| r.closeGRPCConn() | |
| break | |
| } | |
| }() | |
| } |