Skip to content

THRIFT-6392: Stop the D fastest client pool hanging when a child fails early - #3972

Merged
Jens-G merged 1 commit into
apache:masterfrom
slachiewicz:THRIFT-6392
Sep 29, 2026
Merged

Jens-G merged 1 commit into
apache:masterfrom
slachiewicz:THRIFT-6392

Conversation

@slachiewicz

Copy link
Copy Markdown
Member

THRIFT-6392

The fastest pool stopped registering completion callbacks once it saw a child future that had already completed, assuming that child had set the result. A child that failed with an RPC fault does not set it, so the remaining children were never counted and the pool's future never completed. client_pool_test hit this in its all-clients-fail case whenever the 1 ms server answered before the pool was constructed, which is the intermittent lib-d job timeout.

client_pool_test now bounds every client wait and socket read, and CI caps the D check step at 15 minutes, so a future hang fails in seconds rather than holding the job until its 60 minute timeout.

Verified: the new unittest fails before the fix and passes after; 30 local runs of client_pool_test (LDC, macOS arm64) went from 5 hangs to none.

…s early

Client: d

The fastest pool stopped registering completion callbacks once it saw a
child future that had already completed, assuming that child had set the
result. A child that failed with an RPC fault does not set it, so the
remaining children were never counted and the pool's future never
completed. client_pool_test hit this in its all-clients-fail case whenever
the 1 ms server answered before the pool was constructed.

client_pool_test now bounds every client wait and socket read, and CI caps
the D check step, so a future hang fails in seconds rather than holding the
job until its 60 minute timeout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mergeable mergeable Bot added d Pull requests that update D code github_actions Pull requests that update GitHub Actions code labels Sep 27, 2026
@slachiewicz
slachiewicz marked this pull request as ready for review September 28, 2026 12:07
@Jens-G
Jens-G merged commit 7bb0567 into apache:master Sep 29, 2026
110 checks passed
@slachiewicz
slachiewicz deleted the THRIFT-6392 branch September 29, 2026 22:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

d Pull requests that update D code github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants