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

Đang mở
#3,530 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
45/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
typescript
Lĩnh vực
ci-cd

Hướng nghiên cứu

Bắt đầu với start-proxy-action.ts và theo dõi các nhánh retry, thoát sớm, độ trễ ổn định hóa và output. Xác nhận việc retry bị cạn kiệt và exit code cuối cùng được biểu diễn như thế nào, sau đó xác định các bài kiểm thử cho lỗi cuối cùng, trạng thái hoạt động của tiến trình và việc retry với một cổng tạm thời mới; hoàn thành khi quá trình khởi động không ổn định thất bại một cách rõ ràng mà không thay đổi các output hiện có, telemetry hoặc ngữ nghĩa của wrapper.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.

Ngôn ngữ chính
TypeScript
Star
1.6k
Fork
493
Merge trung bình
1 ngày 13 giờ
Pull request đã merge (30 ngày)
44

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của github/codeql-action

Tất cả issue của github/codeql-action

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.