Skip to content

Commit b8474db

Browse files
author
Roman Golov
committed
Fix data race in grpc Client stream.
1 parent bf0fd33 commit b8474db

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
* Fixed data race in `grpcClientStream`
2+
13
## v3.65.2
24
* Fixed data race using `log.WithNames`
35

internal/conn/grpc_client_stream.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ type grpcClientStream struct {
2525
}
2626

2727
func (s *grpcClientStream) CloseSend() (err error) {
28-
onDone := trace.DriverOnConnStreamCloseSend(s.c.config.Trace(), &s.ctx,
28+
ctx := s.ctx
29+
onDone := trace.DriverOnConnStreamCloseSend(s.c.config.Trace(), &ctx,
2930
stack.FunctionID("github.com/ydb-platform/ydb-go-sdk/3/internal/conn.(*grpcClientStream).CloseSend"),
3031
)
3132
defer func() {
@@ -59,7 +60,8 @@ func (s *grpcClientStream) CloseSend() (err error) {
5960
}
6061

6162
func (s *grpcClientStream) SendMsg(m interface{}) (err error) {
62-
onDone := trace.DriverOnConnStreamSendMsg(s.c.config.Trace(), &s.ctx,
63+
ctx := s.ctx
64+
onDone := trace.DriverOnConnStreamSendMsg(s.c.config.Trace(), &ctx,
6365
stack.FunctionID("github.com/ydb-platform/ydb-go-sdk/3/internal/conn.(*grpcClientStream).SendMsg"),
6466
)
6567
defer func() {
@@ -101,7 +103,8 @@ func (s *grpcClientStream) SendMsg(m interface{}) (err error) {
101103
}
102104

103105
func (s *grpcClientStream) RecvMsg(m interface{}) (err error) {
104-
onDone := trace.DriverOnConnStreamRecvMsg(s.c.config.Trace(), &s.ctx,
106+
ctx := s.ctx
107+
onDone := trace.DriverOnConnStreamRecvMsg(s.c.config.Trace(), &ctx,
105108
stack.FunctionID("github.com/ydb-platform/ydb-go-sdk/3/internal/conn.(*grpcClientStream).RecvMsg"),
106109
)
107110
defer func() {
@@ -114,7 +117,7 @@ func (s *grpcClientStream) RecvMsg(m interface{}) (err error) {
114117
defer func() {
115118
if err != nil {
116119
md := s.ClientStream.Trailer()
117-
s.onDone(s.ctx, md)
120+
s.onDone(ctx, md)
118121
}
119122
}()
120123

0 commit comments

Comments
 (0)