Skip to content

Commit 8818965

Browse files
github-actions[bot]polRk
authored andcommitted
Version Packages
1 parent 9123c13 commit 8818965

File tree

7 files changed

+61
-35
lines changed

7 files changed

+61
-35
lines changed

.changeset/fix-topic-stream-reconnect.md

Lines changed: 0 additions & 27 deletions
This file was deleted.

examples/topic/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"dependencies": {
1616
"@ydbjs/core": "^6.0.7",
1717
"@ydbjs/query": "^6.0.7",
18-
"@ydbjs/topic": "^6.1.1"
18+
"@ydbjs/topic": "^6.1.2"
1919
},
2020
"publishConfig": {
2121
"access": "restricted"

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/retry/CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# @ydbjs/retry
22

3+
## 6.1.0
4+
5+
### Minor Changes
6+
7+
- [#560](https://github.com/ydb-platform/ydb-js-sdk/pull/560) [`9123c13`](https://github.com/ydb-platform/ydb-js-sdk/commit/9123c13199871cb994ce146ccc2e83c2edf10399) Thanks [@polRk](https://github.com/polRk)! - Fix topic reader/writer disconnecting after Discovery.listEndpoints
8+
9+
When the driver refreshed its endpoint pool on a periodic discovery round,
10+
it closed and recreated gRPC channels for all known nodes. This caused active
11+
bidirectional streams (topic reader / writer) to receive a `CANCELLED` gRPC
12+
status, which was not treated as a retryable error — so the streams terminated
13+
instead of reconnecting.
14+
15+
Changes:
16+
- **`@ydbjs/retry`**: added `isRetryableStreamError` and `defaultStreamRetryConfig`.
17+
Long-lived streaming RPCs should reconnect on `CANCELLED` and `UNAVAILABLE`
18+
in addition to the errors already handled by `isRetryableError`, because for
19+
streams those codes indicate a transport interruption rather than a semantic
20+
cancellation.
21+
- **`@ydbjs/topic`**: reader (`_consume_stream`) and both writers (`writer`,
22+
`writer2`) now use `isRetryableStreamError` / `defaultStreamRetryConfig` so
23+
they transparently reconnect after a discovery-triggered channel replacement.
24+
Fixed a zombie-reader bug where `read()` would block forever if the retry
25+
budget was exhausted: the reader is now destroyed on unrecoverable stream
26+
errors so pending `read()` calls are unblocked immediately.
27+
328
## 6.0.5
429

530
### Patch Changes

packages/retry/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ydbjs/retry",
3-
"version": "6.0.5",
3+
"version": "6.1.0",
44
"description": "Flexible, configurable retry logic for YDB operations. Supports custom strategies, budgets, and integration with async workflows.",
55
"keywords": [
66
"ydb",

packages/topic/CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,33 @@
11
# @ydbjs/topic
22

3+
## 6.1.2
4+
5+
### Patch Changes
6+
7+
- [#560](https://github.com/ydb-platform/ydb-js-sdk/pull/560) [`9123c13`](https://github.com/ydb-platform/ydb-js-sdk/commit/9123c13199871cb994ce146ccc2e83c2edf10399) Thanks [@polRk](https://github.com/polRk)! - Fix topic reader/writer disconnecting after Discovery.listEndpoints
8+
9+
When the driver refreshed its endpoint pool on a periodic discovery round,
10+
it closed and recreated gRPC channels for all known nodes. This caused active
11+
bidirectional streams (topic reader / writer) to receive a `CANCELLED` gRPC
12+
status, which was not treated as a retryable error — so the streams terminated
13+
instead of reconnecting.
14+
15+
Changes:
16+
- **`@ydbjs/retry`**: added `isRetryableStreamError` and `defaultStreamRetryConfig`.
17+
Long-lived streaming RPCs should reconnect on `CANCELLED` and `UNAVAILABLE`
18+
in addition to the errors already handled by `isRetryableError`, because for
19+
streams those codes indicate a transport interruption rather than a semantic
20+
cancellation.
21+
- **`@ydbjs/topic`**: reader (`_consume_stream`) and both writers (`writer`,
22+
`writer2`) now use `isRetryableStreamError` / `defaultStreamRetryConfig` so
23+
they transparently reconnect after a discovery-triggered channel replacement.
24+
Fixed a zombie-reader bug where `read()` would block forever if the retry
25+
budget was exhausted: the reader is now destroyed on unrecoverable stream
26+
errors so pending `read()` calls are unblocked immediately.
27+
28+
- Updated dependencies [[`9123c13`](https://github.com/ydb-platform/ydb-js-sdk/commit/9123c13199871cb994ce146ccc2e83c2edf10399)]:
29+
- @ydbjs/retry@6.1.0
30+
331
## 6.1.1
432

533
### Patch Changes

packages/topic/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ydbjs/topic",
3-
"version": "6.1.1",
3+
"version": "6.1.2",
44
"description": "YDB Topics client for publish-subscribe messaging. Provides at-least-once delivery, exactly-once publishing, FIFO guarantees, and scalable message processing for unstructured data.",
55
"keywords": [
66
"ydb",
@@ -53,7 +53,7 @@
5353
"@ydbjs/core": "^6.0.7",
5454
"@ydbjs/debug": "^6.0.0",
5555
"@ydbjs/error": "^6.0.0",
56-
"@ydbjs/retry": "^6.0.0",
56+
"@ydbjs/retry": "^6.1.0",
5757
"@ydbjs/value": "^6.0.0",
5858
"ms": "^2.1.3",
5959
"nice-grpc": "^2.1.13",

0 commit comments

Comments
 (0)