Skip to content

feat(sdk-core): add Async HTTP-client warm-up to SdkWarmUp.prime() for CRaC priming#7092

Merged
joviegas merged 12 commits into
feature/master/crac_auto_priming_supportfrom
joviegas/crac_warmup_orchestration_partB
Jun 30, 2026
Merged

feat(sdk-core): add Async HTTP-client warm-up to SdkWarmUp.prime() for CRaC priming#7092
joviegas merged 12 commits into
feature/master/crac_auto_priming_supportfrom
joviegas/crac_warmup_orchestration_partB

Conversation

@joviegas

@joviegas joviegas commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Motivation and Context

Async counterpart to #7080 (sync warm-up). SdkWarmUp.prime() warmed only sync HTTP clients.
Similar implementation was needed for async clients (Netty, CRT)

Modifications

Adds AsyncHttpClientWarmer, the async analogue of SyncHttpClientWarmer from #7080:
discovers each SdkAsyncHttpService, sends a best-effort GET to the STS endpoint, drains
the response. Reuses the same infra (HttpClientWarmer, WarmUpDiscovery,
RegionEndpointResolver) and is wired into ClasspathHttpWarmupInvoker, so prime() now
warms both sync and async.

Async-specific (vs #7080):

  • Bounded 5s block on the async CompletableFuture — must complete before checkpoint.
  • Drains the reactive body via SimpleSubscriber (overrides no-op onComplete/onError).
  • Settles on the execute future too, covering failures with no body signal (no hang).
  • Always closes the client (no leaked FDs → CRaC-safe).
  • SpotBugs ASYNC_BLOCKING_CALL suppression for the intentional bounded get().

Test

  • Junit test added .

License

  • I confirm that this pull request can be released under the Apache 2 license

@joviegas joviegas requested a review from a team as a code owner June 30, 2026 17:25
@joviegas joviegas force-pushed the joviegas/crac_warmup_orchestration_partB branch from 1aaaa3e to fcb71e9 Compare June 30, 2026 17:41
@joviegas joviegas changed the title Joviegas/crac warmup orchestration part b feat(sdk-core): add Async HTTP-client warm-up to SdkWarmUp.prime() for CRaC priming Jun 30, 2026
@joviegas joviegas merged commit f8e4a24 into feature/master/crac_auto_priming_support Jun 30, 2026
3 checks passed
@github-actions

Copy link
Copy Markdown

This pull request has been closed and the conversation has been locked. Comments on closed PRs are hard for our team to see. If you need more assistance, please open a new issue that references this one.

@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Jun 30, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants