Title: fix(start-proxy): explicitly fail when proxy retries are exhausted by iaadillatif · Pull Request #3531 · github/codeql-action · GitHub
Open Graph Title: fix(start-proxy): explicitly fail when proxy retries are exhausted by iaadillatif · Pull Request #3531 · github/codeql-action
X Title: fix(start-proxy): explicitly fail when proxy retries are exhausted by iaadillatif · Pull Request #3531 · github/codeql-action
Description: This PR hardens proxy startup reliability by converting a silent false-success scenario into an explicit failure. Fixes #3530 issue Previously, the startup loop could exhaust retry attempts without throwing a terminal error. In such cases, outputs could still be set and execution would continue even though the proxy process was not running. Before: Proxy started successfully [process exited immediately] After: Failed to start proxy after 5 attempts (last exit code: 1) This change ensures that proxy initialization fails fast if stabilization does not occur. Root Cause The previous control flow: Retried startup attempts Only threw on immediate spawn error Did not explicitly fail after retry exhaustion Could report success if no process remained alive This allowed workflows to proceed with a non-functional proxy. Changes 1. Extracted startup logic Created src/start-proxy/launcher.ts: Encapsulates startup behavior. Allows dependency injection for testing. Improves separation of concerns. 2. Explicit retry exhaustion handling Tracks lastExitCode. Verifies process remains alive after stabilization delay. Throws Error("Failed to start proxy after 5 attempts (last exit code: X)") when no stable process remains. 3. Tests Added launcher.test.ts covering: Retry exhaustion with exit code diagnostics. Spawn error propagation. Successful stabilization and output configuration. Backward Compatibility No change to output names No change to telemetry format No change to wrapper success/failure reporting No new inputs introduced Behavioral impact is limited to converting silent false-positive startup into explicit failure. Testing Executed: npm run lint npm run build npm run test Added tests in: src/start-proxy/launcher.test.ts All new launcher tests pass on Node 24+. Covering: Exhausted retries Spawn error propagation Stable process success path Why This Matters This improves workflow reliability by: Ensuring failures surface at the correct lifecycle stage Reducing downstream noise Providing clearer diagnostics Fail-fast behavior improves user debugging experience and system robustness.
Open Graph Description: This PR hardens proxy startup reliability by converting a silent false-success scenario into an explicit failure. Fixes #3530 issue Previously, the startup loop could exhaust retry attempts without...
X Description: This PR hardens proxy startup reliability by converting a silent false-success scenario into an explicit failure. Fixes #3530 issue Previously, the startup loop could exhaust retry attempts without...
Opengraph URL: https://github.com/github/codeql-action/pull/3531
X: @github
Domain: github.com
| react-profiling | 0 |
| react-import-map | react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf |
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:f98f28d3-7818-a53b-c4eb-f78afba3fb52 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | B04C:C8434:9CADFD:CB9B78:6AED3E2A |
| html-safe-nonce | e1e5dc003ab2055fa04b4aec2566418563be6f6604a2ae6c854400c6646d2d0e |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCMDRDOkM4NDM0OjlDQURGRDpDQjlCNzg6NkFFRDNFMkEiLCJ2aXNpdG9yX2lkIjoiNDUyMTczODc0MDYzOTI4NDc3OCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | d5635a53411c70ac55cd096a8bb74a7553a3e64799c6f7466fc665fd9ab3124e |
| hovercard-subject-tag | pull_request:3341496457 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/github/codeql-action/pull/3531/files |
| twitter:image | https://avatars.githubusercontent.com/u/145087959?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/145087959?s=400&v=4 |
| og:image:alt | This PR hardens proxy startup reliability by converting a silent false-success scenario into an explicit failure. Fixes #3530 issue Previously, the startup loop could exhaust retry attempts without... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 26c92a9388ddfad3fa88d132b5d5f0b4747030233dcc4e5efb05f1cbae152184 |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/github/codeql-action git https://github.com/github/codeql-action.git |
| octolytics-dimension-user_id | 9919 |
| octolytics-dimension-user_login | github |
| octolytics-dimension-repository_id | 259445878 |
| octolytics-dimension-repository_nwo | github/codeql-action |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 259445878 |
| octolytics-dimension-repository_network_root_nwo | github/codeql-action |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | c629ad99c254d306375fc8354d04321c2c362236 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width