Increase JRuby test polling timeout for cflinuxfs5 stability#1140
Merged
Increase JRuby test polling timeout for cflinuxfs5 stability#1140
Conversation
JRuby applications require significant startup time due to JVM initialization and warmup. On resource-constrained CI workers, especially with cflinuxfs5 (Ubuntu 24.04 + OpenJDK 17), startup can exceed 180 seconds, causing flaky test failures. Changes: - Increase CF app timeout: 180s → 300s - Increase test polling timeout: 3min → 5min - Update comments to reflect cflinuxfs5 compatibility This reduces flaky failures while maintaining reasonable test times for apps that are truly broken. Relates to: - PR #1088: Initial timeout increase to 180s - PR #1090: Test polling timeout increase to 3min - PR #1134: OpenJDK cflinuxfs5 support
This was referenced Apr 21, 2026
ivanovac
added a commit
that referenced
this pull request
Apr 21, 2026
PR #1140 changed the timeout from 180s to 300s, but CloudFoundry has a platform-wide maximum of 180s (cc.maximum_health_check_timeout: 180). Deployment fails with: 'health_check_timeout Maximum exceeded: max 180s' The test timeout increase to 5 minutes (from PR #1140) remains in place and is working correctly. This change only reverts the manifest timeout to comply with the CF platform constraint. With timeout: 180s and test polling: 5min, tests should pass in most cases. Some flakiness may remain on extremely slow CI workers, which is an acceptable tradeoff given the platform constraint. Fixes deployment failures introduced by PR #1140.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Increases JRuby integration test polling timeout to reduce flaky test failures on resource-constrained CI workers, especially for cflinuxfs5 (Ubuntu 24.04 + OpenJDK 17).
Note: This PR only increases the test timeout, not the CF app timeout, due to platform constraints.
Background
JRuby applications have significant warmup overhead after the health check passes:
Current 3-minute test timeout is borderline sufficient, causing ~10-20% failure rate on slower CI workers. Tests pass consistently on retry (2nd-4th attempt), indicating this is an infrastructure timing issue rather than a code bug.
Problem with Initial Approach
The original attempt to increase the CF app timeout from 180s to 300s failed because the CF platform has a maximum configured limit of 180 seconds:
The CloudFoundry deployment has
cc.maximum_health_check_timeout: 180configured, which we cannot override from the buildpack.Revised Solution
Since we cannot increase the CF health check timeout, we only increase the test polling timeout:
This gives the test more time to wait for HTTP responses after the app has passed its health check and is marked as "running". JRuby needs this additional warmup time before it can reliably serve HTTP requests.
Changes
src/ruby/integration/default_test.go)Testing
Related PRs
Rationale
Why 5 minutes?
Observed behavior:
Impact
Alternative Approaches Considered