jamesfredley opened a new pull request, #15481: URL: https://github.com/apache/grails-core/pull/15481
## Summary - Configure the Micronaut `HttpClient` in `AsyncPromiseSpec` with an explicit 30-second read timeout using `DefaultHttpClientConfiguration` - The default timeout is insufficient on loaded CI runners where Spring `@Async` thread pool startup on first invocation combined with processing overhead can exceed the client read timeout - Follows the same pattern already used in `FlashChainForwardSpec` for custom `HttpClient` configuration ## Problem `AsyncPromiseSpec > async service processes string input` intermittently fails with `io.micronaut.http.client.exceptions.ReadTimeoutException` on CI (observed on JDK 17 Functional Tests). The test calls a controller endpoint that uses Spring `@Async` service methods. On a loaded CI runner, the combination of: 1. Spring `@Async` thread pool initialization (first invocation) 2. `Thread.sleep(100)` in the service 3. `future.get(5, TimeUnit.SECONDS)` server-side wait 4. Response serialization overhead ...can exceed the Micronaut `HttpClient` default read timeout. ## Fix Replace `HttpClient.create(url)` (default config) with `HttpClient.create(url, config)` where `config` has `readTimeout = 30 seconds`. This is the same approach used in `FlashChainForwardSpec`. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
