Skip to content

Wingspan/grpc js 1.14.4 - #3075

Closed
ws-gregm wants to merge 25 commits into
grpc:masterfrom
wingspanHQ:wingspan/grpc-js-1.14.4
Closed

Wingspan/grpc js 1.14.4#3075
ws-gregm wants to merge 25 commits into
grpc:masterfrom
wingspanHQ:wingspan/grpc-js-1.14.4

Conversation

@ws-gregm

Copy link
Copy Markdown
Contributor

No description provided.

murgatroid99 and others added 25 commits September 12, 2025 15:43
grpc-js(-xds): Bump to 1.14.0 and update README
grpc-js: Re-add a couple of accidentally removed HTTP/2 session settings
…port

Backport "Fix server keep alive timeout not properly destroying connections" to 1.14.x
Backport "Send halfClose immediately after messages to prevent late halfClose issues with Envoy" to 1.14.x
grpc-js-xds: Update RBAC code to handle Node type change, pin @types/node (1.14.x)
Fix server crash when handling invalid requests (1.14.x)
Fix crashes when receiving malformed compressed data (1.14.x)
A graceful GOAWAY leaves the keepalive timer running on both the client
transport and the server session. The next PING that fails or times out calls
the disconnect path, which destroys in-flight RPCs that the GOAWAY had
deliberately allowed to finish draining.

Client (transport.ts): mark the transport as draining when the session emits
goaway, clear any pending keepalive timeout, refuse to start new pings while
draining, and ignore the completion callback of a ping that was already in
flight when the GOAWAY arrived. The socket close/error handlers still report
genuine disconnects, and call deadlines still bound hung calls.

Server (server.ts): begin draining a session before any locally initiated
close (closeSession, max connection age) and when the peer sends GOAWAY, so
the keepalive machinery cannot destroy a session that is intentionally
winding down with calls still active.

See #3068 for reproductions of both the timer-driven failure
and the ping-already-in-flight race.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rename the grpc-js package to @wingspanhq/grpc-js at 1.14.4-wingspan.1, add
the publish workflow and tsconfig.publish.json (src-only compile of the
published build/src tree), and document the fork's purpose, build recipe,
upstream-rebase procedure, and exit criteria in FORK.md.

The copied ORCA protos and the build output stay untracked; copy-protos and
tsc regenerate them at publish time.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@linux-foundation-easycla

Copy link
Copy Markdown

CLA Not Signed

@ws-gregm ws-gregm closed this Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants