Refactor: Replace `WaitNext` usages with `Do` in backoff package to avoid panics

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

Maintainer thường phản hồi trong vòng 2 ngày

@krishpinto đang làm issue này rồi.

Từ ngày 9/7/2026.

  • #6996 của @Nsanjayboruds — đã đóng, không merge

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
68/100
Loại issue
Tái cấu trúc
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
go
Lĩnh vực
devops

Hướng nghiên cứu

Bắt đầu tại pkg/backoff/backoff.go:65 và kiểm tra TODO giải thích các rủi ro của việc sử dụng trực tiếp WaitNext. Tìm kiếm trong codebase các lệnh gọi WaitNext(ctx) trên các interface hoặc object retry, sau đó xác định mọi cách sử dụng nằm ngoài pkg/backoff. Hoàn tất khi các cách sử dụng đó dùng Do thay thế và các bài kiểm thử Go bị ảnh hưởng đều chạy thành công.

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

Mô tả

kind/bug

What happened:
The codebase currently contains direct usages of the WaitNext function in the pkg/backoff package. There is a TODO comment at pkg/backoff/backoff.go:65 indicating that using WaitNext directly can lead to panics in certain scenarios, and we need to refactor these usages.

What you expected to happen:
To avoid potential panics and improve stability, all usages of WaitNext outside of the pkg/backoff package should be replaced with the safer Do method. The Do method encapsulates the retry logic and executes operations safely without risking panics from improper loop handling.

How to reproduce it:
This is a proactive code refactoring task rather than a runtime bug reproduction.

  1. Check pkg/backoff/backoff.go line 65 to see the TODO.
  2. Search the codebase for invocations of WaitNext(ctx) on retry interfaces/objects to see where refactoring is needed.

Environment:

  • piped version: N/A (Codebase refactoring)
  • control-plane version: N/A
  • Others: N/A
Ngôn ngữ chính
Go
Star
1.4k
Fork
391
Merge trung bình
4 ngày 1 giờ
Pull request đã merge (30 ngày)
58

Chuẩn bị môi trường

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 pipe-cd/pipecd

Tất cả issue của pipe-cd/pipecd

Issue tương tự

Thêm issue về Go

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.