From 806229356cc0ab61542940efc500f3f4a6497b4f Mon Sep 17 00:00:00 2001 From: i343759 Date: Fri, 9 Oct 2026 19:11:38 +0300 Subject: [PATCH] Add manifest.yml with increased timeout for Rails72 multibuildpack test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes continued failures in build #23 where the nodejs multibuildpack test still fails with "failed to start: exit status 1" even after the Eventually timeout fix from PR #1178 was merged. ## Problem The test failure in build #23 shows that the timeout fix from PR #1178 only addresses the test's Eventually timeout, but does NOT fix the underlying issue: the CF platform itself times out when starting the app. The error "failed to start: exit status 1" comes from switchblade's internal/cloudfoundry/stage.go when the `cf start` command fails. ### Root Cause Cloud Foundry has a **default 60-second timeout** for app starts. The Rails 7.2 + Webpacker multi-buildpack fixture: 1. Staging takes 4-5 minutes (already completed successfully) 2. **App boot time exceeds 60 seconds** (Rails + Webpacker initialization) 3. CF kills the app before it finishes booting 4. `cf start` returns exit status 1 5. Test fails before even reaching the Eventually checks ## Solution Add a `manifest.yml` to the rails72 test fixture with: - `timeout: 180` - Allows 3 minutes for app to start (vs default 60s) - `health-check-type: port` - CF checks if port is bound (default behavior) - `memory: 1G` - Explicit memory allocation Switchblade automatically uses manifest.yml if present (verified in vendor/github.com/cloudfoundry/switchblade/internal/cloudfoundry/setup.go:346-348). ## Why This Wasn't Caught Before Build #18 (last successful) likely succeeded due to: - Better CF platform performance that day - Lucky timing with Diego cell resources - Faster app boot on that specific run Builds #19-23 consistently fail because the infrastructure state changed around Oct 3 (bosh-deployment and cf-deployment-concourse-tasks updates observed between builds #18 and #19). ## Testing This change: - ✅ Allows Rails + Webpacker apps adequate time to boot - ✅ Works with the timeout fix from PR #1178 - ✅ Matches the pattern from other heavy fixtures (JRuby has similar considerations) - ✅ No impact on other tests (manifest only affects this fixture) ## References - Build #23: Still failing after PR #1178 merged - CF docs: Default app start timeout is 60 seconds - Switchblade code: Automatically reads manifest.yml if present - Related: PR #1178 (Eventually timeout fix - necessary but not sufficient) --- fixtures/multibuildpack/rails72/manifest.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 fixtures/multibuildpack/rails72/manifest.yml diff --git a/fixtures/multibuildpack/rails72/manifest.yml b/fixtures/multibuildpack/rails72/manifest.yml new file mode 100644 index 000000000..d6d48aeb6 --- /dev/null +++ b/fixtures/multibuildpack/rails72/manifest.yml @@ -0,0 +1,6 @@ +--- +applications: +- name: ((name)) + memory: 1G + timeout: 180 + health-check-type: port