Skip to content

Commit f27f92f

Browse files
committed
exclude processing transport/operation/context errors on query client side
1 parent c9efa08 commit f27f92f

File tree

7 files changed

+20
-87
lines changed

7 files changed

+20
-87
lines changed

internal/query/client_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,9 @@ func TestCreateSession(t *testing.T) {
123123
ctx := xtest.Context(t)
124124
ctrl := gomock.NewController(t)
125125
service := NewMockQueryServiceClient(ctrl)
126-
service.EXPECT().CreateSession(gomock.Any(), gomock.Any()).Return(&Ydb_Query.CreateSessionResponse{
127-
Status: Ydb.StatusIds_UNAVAILABLE,
128-
}, nil)
126+
service.EXPECT().CreateSession(gomock.Any(), gomock.Any()).Return(nil,
127+
xerrors.Operation(xerrors.WithStatusCode(Ydb.StatusIds_UNAVAILABLE)),
128+
)
129129
t.Log("execute")
130130
_, err := createSession(ctx, service)
131131
require.Error(t, err)

internal/query/execute_query.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,7 @@ func execute(ctx context.Context, s *Session, c Ydb_Query_V1.QueryServiceClient,
6464

6565
stream, err := c.ExecuteQuery(executeCtx, request, callOptions...)
6666
if err != nil {
67-
if xerrors.IsContextError(err) {
68-
return nil, nil, xerrors.WithStackTrace(err)
69-
}
70-
71-
return nil, nil, xerrors.WithStackTrace(
72-
xerrors.Transport(err),
73-
)
67+
return nil, nil, xerrors.WithStackTrace(err)
7468
}
7569

7670
r, txID, err := newResult(ctx, stream, s.trace, cancelExecute)

internal/query/result.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,7 @@ func nextPart(
9393

9494
part, err := stream.Recv()
9595
if err != nil {
96-
if xerrors.IsContextError(err) {
97-
return nil, xerrors.WithStackTrace(err)
98-
}
99-
100-
return nil, xerrors.WithStackTrace(
101-
xerrors.Transport(err),
102-
)
96+
return nil, xerrors.WithStackTrace(err)
10397
}
10498

10599
return part, nil

internal/query/session.go

Lines changed: 7 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -81,19 +81,7 @@ func createSession(
8181

8282
response, err := client.CreateSession(ctx, &Ydb_Query.CreateSessionRequest{})
8383
if err != nil {
84-
if xerrors.IsContextError(err) {
85-
return nil, xerrors.WithStackTrace(err)
86-
}
87-
88-
return nil, xerrors.WithStackTrace(
89-
xerrors.Transport(err),
90-
)
91-
}
92-
93-
if response.GetStatus() != Ydb.StatusIds_SUCCESS {
94-
return nil, xerrors.WithStackTrace(
95-
xerrors.FromOperation(response),
96-
)
84+
return nil, xerrors.WithStackTrace(err)
9785
}
9886

9987
defer func() {
@@ -107,9 +95,7 @@ func createSession(
10795

10896
err = s.attach(ctx)
10997
if err != nil {
110-
return nil, xerrors.WithStackTrace(
111-
xerrors.Transport(err),
112-
)
98+
return nil, xerrors.WithStackTrace(err)
11399
}
114100

115101
s.setStatus(statusIdle)
@@ -129,20 +115,14 @@ func (s *Session) attach(ctx context.Context) (finalErr error) {
129115
SessionId: s.id,
130116
})
131117
if err != nil {
132-
if xerrors.IsContextError(err) {
133-
return xerrors.WithStackTrace(err)
134-
}
135-
136-
return xerrors.WithStackTrace(
137-
xerrors.Transport(err),
138-
)
118+
return xerrors.WithStackTrace(err)
139119
}
140120

141121
state, err := attach.Recv()
142122
if err != nil {
143123
cancelAttach()
144124

145-
return xerrors.WithStackTrace(xerrors.Transport(err))
125+
return xerrors.WithStackTrace(err)
146126
}
147127

148128
if state.GetStatus() != Ydb.StatusIds_SUCCESS {
@@ -173,19 +153,14 @@ func (s *Session) attach(ctx context.Context) (finalErr error) {
173153
if !s.IsAlive() {
174154
return
175155
}
176-
recv, recvErr := attach.Recv()
156+
_, recvErr := attach.Recv()
177157
if recvErr != nil {
178158
if xerrors.Is(recvErr, io.EOF) {
179159
s.setStatus(statusClosed)
180160
} else {
181161
s.setStatus(statusError)
182162
}
183163

184-
return
185-
}
186-
if recv.GetStatus() != Ydb.StatusIds_SUCCESS {
187-
s.setStatus(statusError)
188-
189164
return
190165
}
191166
}
@@ -201,11 +176,7 @@ func deleteSession(ctx context.Context, client Ydb_Query_V1.QueryServiceClient,
201176
},
202177
)
203178
if err != nil {
204-
if xerrors.IsContextError(err) {
205-
return xerrors.WithStackTrace(err)
206-
}
207-
208-
return xerrors.WithStackTrace(xerrors.Transport(err))
179+
return xerrors.WithStackTrace(err)
209180
}
210181
if response.GetStatus() != Ydb.StatusIds_SUCCESS {
211182
return xerrors.WithStackTrace(xerrors.FromOperation(response))
@@ -252,16 +223,7 @@ func begin(
252223
},
253224
)
254225
if err != nil {
255-
if xerrors.IsContextError(err) {
256-
return nil, xerrors.WithStackTrace(err)
257-
}
258-
259-
return nil, xerrors.WithStackTrace(
260-
xerrors.Transport(err),
261-
)
262-
}
263-
if response.GetStatus() != Ydb.StatusIds_SUCCESS {
264-
return nil, xerrors.WithStackTrace(xerrors.FromOperation(response))
226+
return nil, xerrors.WithStackTrace(err)
265227
}
266228

267229
return newTransaction(response.GetTxMeta().GetId(), s, s.trace), nil

internal/query/session_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ func TestBegin(t *testing.T) {
4545
ctx := xtest.Context(t)
4646
ctrl := gomock.NewController(t)
4747
service := NewMockQueryServiceClient(ctrl)
48-
service.EXPECT().BeginTransaction(gomock.Any(), gomock.Any()).Return(&Ydb_Query.BeginTransactionResponse{
49-
Status: Ydb.StatusIds_UNAVAILABLE,
50-
}, nil)
48+
service.EXPECT().BeginTransaction(gomock.Any(), gomock.Any()).Return(nil,
49+
xerrors.Operation(xerrors.WithStatusCode(Ydb.StatusIds_UNAVAILABLE)),
50+
)
5151
t.Log("begin")
5252
_, err := begin(ctx, service, &Session{id: "123"}, query.TxSettings())
5353
require.Error(t, err)

internal/query/transaction.go

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -55,21 +55,12 @@ func (tx transaction) Execute(ctx context.Context, q string, opts ...options.TxE
5555
}
5656

5757
func commitTx(ctx context.Context, client Ydb_Query_V1.QueryServiceClient, sessionID, txID string) error {
58-
response, err := client.CommitTransaction(ctx, &Ydb_Query.CommitTransactionRequest{
58+
_, err := client.CommitTransaction(ctx, &Ydb_Query.CommitTransactionRequest{
5959
SessionId: sessionID,
6060
TxId: txID,
6161
})
6262
if err != nil {
63-
if xerrors.IsContextError(err) {
64-
return xerrors.WithStackTrace(err)
65-
}
66-
67-
return xerrors.WithStackTrace(
68-
xerrors.Transport(err),
69-
)
70-
}
71-
if response.GetStatus() != Ydb.StatusIds_SUCCESS {
72-
return xerrors.WithStackTrace(xerrors.FromOperation(response))
63+
return xerrors.WithStackTrace(err)
7364
}
7465

7566
return nil
@@ -85,13 +76,7 @@ func rollback(ctx context.Context, client Ydb_Query_V1.QueryServiceClient, sessi
8576
TxId: txID,
8677
})
8778
if err != nil {
88-
if xerrors.IsContextError(err) {
89-
return xerrors.WithStackTrace(err)
90-
}
91-
92-
return xerrors.WithStackTrace(
93-
xerrors.Transport(err),
94-
)
79+
return xerrors.WithStackTrace(err)
9580
}
9681
if response.GetStatus() != Ydb.StatusIds_SUCCESS {
9782
return xerrors.WithStackTrace(xerrors.FromOperation(response))

internal/query/transaction_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,8 @@ func TestCommitTx(t *testing.T) {
4949
ctx := xtest.Context(t)
5050
ctrl := gomock.NewController(t)
5151
service := NewMockQueryServiceClient(ctrl)
52-
service.EXPECT().CommitTransaction(gomock.Any(), gomock.Any()).Return(
53-
&Ydb_Query.CommitTransactionResponse{
54-
Status: Ydb.StatusIds_UNAVAILABLE,
55-
}, nil,
52+
service.EXPECT().CommitTransaction(gomock.Any(), gomock.Any()).Return(nil,
53+
xerrors.Operation(xerrors.WithStatusCode(Ydb.StatusIds_UNAVAILABLE)),
5654
)
5755
t.Log("commit")
5856
err := commitTx(ctx, service, "123", "456")

0 commit comments

Comments
 (0)