Skip to content

THRIFT-6125: Close Ruby client transports after uncertain sends - #3680

Merged
kpumuk merged 1 commit into
apache:masterfrom
kpumuk:rb-client-flush-state
Jul 29, 2026
Merged

THRIFT-6125: Close Ruby client transports after uncertain sends#3680
kpumuk merged 1 commit into
apache:masterfrom
kpumuk:rb-client-flush-state

Conversation

@kpumuk

@kpumuk kpumuk commented Jul 28, 2026

Copy link
Copy Markdown
Member

Ruby clients currently close their output transport when argument serialization fails, but leave it reusable when writing the message envelope, finishing the message, or flushing fails. At that point, request delivery may be partial or otherwise uncertain, so a subsequent call can reuse transport state that no longer has a reliable request boundary.

This change prepares generated arguments before consuming a sequence ID or writing message bytes. Once message output begins, envelope writing, argument serialization, message completion, and flushing share one failure boundary that closes the output transport while preserving the original exception. Ordinary calls are added to the pending-reply queue only after a successful flush, and oneway calls follow the same transport-closing behavior.

  • Did you create an Apache Jira ticket? THRIFT-6125
  • If a ticket exists: Does your pull request title follow the pattern "THRIFT-NNNN: describe my issue"?
  • Did you squash your changes to a single commit? (not required, but preferred)
  • Did you do your best to avoid breaking changes? If one was needed, did you label the Jira ticket with "Breaking-Change"?
  • If your change does not involve any code, include [skip ci] anywhere in the commit message to free up build resources.

Client: rb

Co-Authored-By: OpenAI Codex (GPT-5.6) <codex@openai.com>
Copilot AI review requested due to automatic review settings July 28, 2026 15:08

This comment was marked as spam.

@mergeable mergeable Bot added the ruby Pull requests that update Ruby code label Jul 28, 2026
@kpumuk
kpumuk merged commit f69c207 into apache:master Jul 29, 2026
95 checks passed
@kpumuk
kpumuk deleted the rb-client-flush-state branch July 29, 2026 22:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ruby Pull requests that update Ruby code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants