Skip to content

Commit 3129356

Browse files
author
Alexey Zorkaltsev
authored
Merge pull request #407 from ydb-platform/call-cancelled-bug3
fix Call cancelled error
2 parents 2da21af + ee14b9f commit 3129356

File tree

4 files changed

+13
-7
lines changed

4 files changed

+13
-7
lines changed

src/__tests__/e2e/query-service/query-service-client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {QuerySession, IExecuteResult} from "../../../query";
99
if (process.env.TEST_ENVIRONMENT === 'dev') require('dotenv').config();
1010

1111
const DATABASE = '/local';
12-
const ENDPOINT = process.env.YDB_ENDPOINT || 'grpc://localhost:2135';
12+
const ENDPOINT = process.env.YDB_ENDPOINT || 'grpc://localhost:2136';
1313

1414
describe('Query client', () => {
1515

src/errors.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ export enum StatusCode {
4646

4747
UNAUTHENTICATED = CLIENT_STATUSES_FIRST + 30, // SDK local
4848
SESSION_POOL_EMPTY = CLIENT_STATUSES_FIRST + 40, // SDK local
49+
RETRIES_EXCEEDED = CLIENT_STATUSES_FIRST + 50, // SDK local
4950
}
5051

5152
/**
@@ -314,15 +315,20 @@ export class ClientResourceExhausted extends TransportError {
314315
public readonly [RetryPolicySymbol] = retryPolicy(Backoff.Slow, false, true, true);
315316
}
316317

318+
export class ClientCancelled extends TransportError {
319+
static status = StatusCode.CLIENT_CANCELED;
320+
public readonly [RetryPolicySymbol] = retryPolicy(Backoff.No, false, false, false);
321+
}
322+
317323
const TRANSPORT_ERROR_CODES = new Map([
318-
[GrpcStatus.CANCELLED, Cancelled],
324+
[GrpcStatus.CANCELLED, ClientCancelled],
319325
[GrpcStatus.UNAVAILABLE, TransportUnavailable],
320326
[GrpcStatus.DEADLINE_EXCEEDED, ClientDeadlineExceeded],
321327
[GrpcStatus.RESOURCE_EXHAUSTED, ClientResourceExhausted]
322328
]);
323329

324-
export class ClientCancelled extends YdbError {
325-
static status = StatusCode.CLIENT_CANCELED;
330+
export class RetriesExceeded extends YdbError {
331+
static status = StatusCode.RETRIES_EXCEEDED;
326332
public readonly [RetryPolicySymbol] = retryPolicy(Backoff.No, false, false, false);
327333

328334
constructor(public readonly cause: Error) {

src/retries/retryStrategy.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {Backoff, ClientCancelled, SpecificErrorRetryPolicy} from "../errors";
1+
import {Backoff, RetriesExceeded, SpecificErrorRetryPolicy} from "../errors";
22
import {HasLogger} from "../logger/has-logger";
33
import {Logger} from "../logger/simple-logger";
44
import {RetryParameters} from "./retryParameters";
@@ -45,7 +45,7 @@ export class RetryStrategy implements HasLogger {
4545
while (true) {
4646
if (maxRetries !== 0 && attemptsCounter >= maxRetries) { // to support the old logic for a while
4747
this.logger.debug(tooManyAttempts, attemptsCounter);
48-
throw new ClientCancelled(new Error(`Too many attempts: ${attemptsCounter}`));
48+
throw new RetriesExceeded(new Error(`Too many attempts: ${attemptsCounter}`));
4949
}
5050
let r: RetryLambdaResult<T>;
5151
try {

src/retries_obsoleted.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import {YdbError, TransportError} from './errors';
22
import * as errors from './errors';
33
import * as utils from "./utils";
44
import {Logger} from "./logger/simple-logger";
5-
// import {getDefaultLogger} from "./logger/get-default-logger";
65

76
export class BackoffSettings {
87
/**
@@ -56,6 +55,7 @@ const RETRYABLE_ERRORS_FAST = [
5655
errors.NotFound,
5756
errors.TransportUnavailable,
5857
errors.ClientDeadlineExceeded,
58+
errors.ClientCancelled,
5959
];
6060
const RETRYABLE_ERRORS_SLOW = [errors.Overloaded, errors.ClientResourceExhausted];
6161

0 commit comments

Comments
 (0)