Skip to content

Commit f452b34

Browse files
authored
Merge branch 'master' into deny-buffer-0
2 parents 5ff53ed + a424af4 commit f452b34

File tree

18 files changed

+993
-110
lines changed

18 files changed

+993
-110
lines changed

CHANGELOG.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
* Improve config validation before start topic reader
2+
* Added metrics over `db.Table().Do()` and `db.Table().DoTx()`
3+
* Added method `ydb.ParamsBuilder().Param(name).Any(value)` to add custom `types.Value`
4+
* Upgraded dependencies:
5+
* `google.golang.org/grpc` - from `v1.57.1` to `v1.62.1`
6+
* `github.com/google/uuid` - from `v1.3.0` to `v1.6.0`
7+
* `golang.org/x/sync` - from `v0.3.0` to `v0.6.0`
28
* Fixed goroutine leak on close reader
39
* Fixed topic reader and writer WaitInit hunging on unretriable connection error
410
* Added `query.Client.Stats()` method
511
* Added `query.Result.Stats()` method
612
* Added `query.ResultSet.Index()` method
713
* Support loading OAuth 2.0 token exchange credentials provider from config file
814
* Added options for JWT tokens for loading EC private keys and HMAC secrets
15+
* Add retries to OAuth 2.0 token exchange credentials
916

1017
## v3.74.5
1118
* Fixed bug with reading empty result set parts.
@@ -15,11 +22,11 @@
1522
* Fixed bug with fail cast of grpc response to `operation.{Response,Status}`
1623

1724
## v3.74.3
18-
* Removed check the node is available for query and table service sessions
25+
* Removed check the node is available for query and table service sessions
1926
* Refactored the `balancers.PreferLocations()` function - it is a clean/pure function
2027
* Added experimental `balancers.WithNodeID()` context modifier for define per request the YDB endpoint by NodeID
2128
* Reverted the allowing the casts from signed YDB types to unsigned destination types if source value is not negative
22-
* Replaced internal query session pool by default to stub for exclude impact from internal/pool
29+
* Replaced internal query session pool by default to stub for exclude impact from internal/pool
2330

2431
## v3.74.2
2532
* Added description to scan errors with use query service client scanner
@@ -68,7 +75,7 @@
6875
## v3.68.0
6976
* Added experimental `ydb.{Register,Unregister}DsnParser` global funcs for register/unregister external custom DSN parser for `ydb.Open` and `sql.Open` driver constructor
7077
* Simple implement option WithReaderWithoutConsumer
71-
* Fixed bug: topic didn't send specified partition number to a server
78+
* Fixed bug: topic didn't send specified partition number to a server
7279

7380
## v3.67.2
7481
* Fixed incorrect formatting of decimal. Implementation of decimal has been reverted to latest working version
@@ -93,12 +100,12 @@
93100
* Added Flush method for topic writer
94101

95102
## v3.66.0
96-
* Added experimental package `retry/budget` for limit second and subsequent retry attempts
103+
* Added experimental package `retry/budget` for limit second and subsequent retry attempts
97104
* Refactored internals for enabling `containedctx` linter
98105
* Fixed the hanging semaphore issue on coordination session reconnect
99106

100107
## v3.65.3
101-
* Fixed data race in `internal/conn.grpcClientStream`
108+
* Fixed data race in `internal/conn.grpcClientStream`
102109

103110
## v3.65.2
104111
* Fixed data race using `log.WithNames`

credentials/options.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ func WithRequestTimeout(timeout time.Duration) Oauth2TokenExchangeCredentialsOpt
5555
return credentials.WithRequestTimeout(timeout)
5656
}
5757

58+
// SyncExchangeTimeout
59+
func WithSyncExchangeTimeout(timeout time.Duration) Oauth2TokenExchangeCredentialsOption {
60+
return credentials.WithSyncExchangeTimeout(timeout)
61+
}
62+
5863
// SubjectTokenSource
5964
func WithSubjectToken(subjectToken credentials.TokenSource) Oauth2TokenExchangeCredentialsOption {
6065
return credentials.WithSubjectToken(subjectToken)

go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ go 1.20
44

55
require (
66
github.com/golang-jwt/jwt/v4 v4.4.1
7-
github.com/google/uuid v1.3.0
7+
github.com/google/uuid v1.6.0
88
github.com/jonboulle/clockwork v0.3.0
99
github.com/ydb-platform/ydb-go-genproto v0.0.0-20240528144234-5d5a685e41f7
1010
golang.org/x/net v0.23.0
11-
golang.org/x/sync v0.3.0
11+
golang.org/x/sync v0.6.0
1212
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
13-
google.golang.org/grpc v1.57.1
13+
google.golang.org/grpc v1.62.1
1414
google.golang.org/protobuf v1.33.0
1515
)
1616

@@ -27,7 +27,7 @@ require (
2727
github.com/pmezard/go-difflib v1.0.0 // indirect
2828
golang.org/x/sys v0.18.0 // indirect
2929
golang.org/x/text v0.14.0 // indirect
30-
google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect
30+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect
3131
gopkg.in/yaml.v3 v3.0.0 // indirect
3232
)
3333

go.sum

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
4646
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
4747
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
4848
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
49-
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
49+
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
5050
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
51-
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
52-
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
51+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
52+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
5353
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
5454
github.com/jonboulle/clockwork v0.3.0 h1:9BSCMi8C+0qdApAp4auwX0RkLGUjs956h0EkuQymUhg=
5555
github.com/jonboulle/clockwork v0.3.0/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
@@ -64,8 +64,6 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
6464
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
6565
github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
6666
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
67-
github.com/ydb-platform/ydb-go-genproto v0.0.0-20240316140903-4a47abca1cca h1:PliQWLwi2gTSOk7QyYQ9GfjvvikmibLWmaplKHy+kfo=
68-
github.com/ydb-platform/ydb-go-genproto v0.0.0-20240316140903-4a47abca1cca/go.mod h1:Er+FePu1dNUieD+XTMDduGpQuCPssK5Q4BjF+IIXJ3I=
6967
github.com/ydb-platform/ydb-go-genproto v0.0.0-20240528144234-5d5a685e41f7 h1:nL8XwD6fSst7xFUirkaWJmE7kM0CdWRYgu6+YQer1d4=
7068
github.com/ydb-platform/ydb-go-genproto v0.0.0-20240528144234-5d5a685e41f7/go.mod h1:Er+FePu1dNUieD+XTMDduGpQuCPssK5Q4BjF+IIXJ3I=
7169
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
@@ -93,8 +91,8 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ
9391
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
9492
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
9593
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
96-
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
97-
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
94+
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
95+
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
9896
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
9997
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
10098
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -121,17 +119,17 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoA
121119
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
122120
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
123121
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
124-
google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM=
125-
google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
122+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM=
123+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s=
126124
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
127125
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
128126
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
129127
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
130128
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
131129
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
132130
google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
133-
google.golang.org/grpc v1.57.1 h1:upNTNqv0ES+2ZOOqACwVtS3Il8M12/+Hz41RCPzAjQg=
134-
google.golang.org/grpc v1.57.1/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo=
131+
google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk=
132+
google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE=
135133
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
136134
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
137135
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=

internal/conn/grpc_client_stream.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ func (s *grpcClientStream) finish(err error) {
126126
)
127127
}
128128

129-
func (s *grpcClientStream) RecvMsg(m interface{}) (err error) {
129+
func (s *grpcClientStream) RecvMsg(m interface{}) (err error) { //nolint:funlen
130130
var (
131131
ctx = s.streamCtx
132132
onDone = trace.DriverOnConnStreamRecvMsg(s.parentConn.config.Trace(), &ctx,
@@ -146,14 +146,16 @@ func (s *grpcClientStream) RecvMsg(m interface{}) (err error) {
146146
err = s.stream.RecvMsg(m)
147147

148148
if err != nil { //nolint:nestif
149+
if xerrors.Is(err, io.EOF) {
150+
return io.EOF
151+
}
152+
149153
if xerrors.IsContextError(err) {
150154
return xerrors.WithStackTrace(err)
151155
}
152156

153157
defer func() {
154-
if !xerrors.Is(err, io.EOF) {
155-
s.parentConn.onTransportError(ctx, err)
156-
}
158+
s.parentConn.onTransportError(ctx, err)
157159
}()
158160

159161
if s.wrapping {

0 commit comments

Comments
 (0)