[BUG]: Proxy startup may report success when retries are exhausted and process does not stabilize

未关闭
#3,530 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
typescript
领域
ci-cd

调研方向

从 start-proxy-action.ts 开始,跟踪重试、提前退出、稳定化延迟和输出路径。确认重试耗尽和最后的退出代码是如何表示的,然后围绕终态失败、进程存活状态以及使用新的临时端口进行重试来定义测试;完成的标准是:不改变现有输出、telemetry 或 wrapper 语义的情况下,不稳定的启动会明确失败。

由索引模型根据 Issue 内容生成。

描述

Problem

The proxy startup logic in start-proxy-action.ts can report successful initialization even when the proxy process fails to stabilize after retry attempts.

The previous implementation:

  • Retries on spawn or early exit
  • Only throws on immediate spawn errors
  • Does not explicitly fail when all retry attempts are exhausted
  • May proceed with outputs set despite no stable process remaining alive

This can lead to false-positive startup.

Impact

When startup silently fails:

  • Downstream steps may fail with opaque dependency or networking errors
  • Failures manifest later in the workflow
  • Root cause becomes difficult to diagnose

Instead of failing fast during initialization, workflows continue in a degraded state.

Expected Behavior

If the proxy fails to stabilize after retry attempts, startup should fail explicitly with a clear diagnostic error.

Proposed Solution

  • Detect retry exhaustion explicitly
  • Throw a clear error including the last exit code
  • Verify process remains alive after stabilization delay
  • Retry using a new ephemeral port before terminal failure
  • Extract startup logic into a dedicated launcher module for testability

This preserves existing outputs, telemetry behavior, and wrapper semantics while preventing silent failure.

主要语言
TypeScript
星标
1.6k
派生
493
平均合并
1 天 13 小时
30 天内合并 PR
44

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

github/codeql-action 的其他 Issue

查看 github/codeql-action 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。