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

Abierto
#6,995 6 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@krishpinto ya está trabajando en esto.

Desde el 9/7/2026.

  • #6996 de @Nsanjayboruds — cerrado sin fusionar

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
68/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
go
Área
devops

Línea de trabajo

Empieza en pkg/backoff/backoff.go:65 e inspecciona el TODO que explica los riesgos del uso directo de WaitNext. Busca en el código llamadas a WaitNext(ctx) en interfaces u objetos de reintento y, después, identifica cada uso fuera de pkg/backoff. Se considera terminado cuando esos usos utilizan Do en su lugar y las pruebas de Go afectadas pasan.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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
Lenguaje dominante
Go
Estrellas
1.4k
Forks
391
Merge medio
4 d 1 h
PR fusionados (30 d)
58

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de pipe-cd/pipecd

Todos los issues de pipe-cd/pipecd

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.