Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Start test servers on a port no other program can take

Abierto
#109 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
66/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
go
Área
testing

Línea de trabajo

Start by reading FreeAddr and WaitForListening, then find the tests that start a server and poll its address. Check how the listening line is captured and how a bind failure is reported; the proposal is complete when tests can start servers on port 0, use the address from that line, and fail the wait if binding fails.

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

Descripción

bug help wanted

A test should never fail because another program took its port.

Current state: FreeAddr opens a listener on port 0, closes it and returns the address. Another program can take it before the server binds. The server then fails to bind, and a test that polls the address talks to that program instead. In a check, the next 40 port 0 binds took 29 of 5000 freed ports.

Proposal: Make WaitForListening return the address the listening line names. Tests then start their server on port 0 and read its log through a pipe. A server that cannot bind then fails the wait, not a later request. FreeAddr stays for an address nothing answers at.

Trigger: A downstream application's CI failed once this way, then passed on a rerun.

Lenguaje dominante
Go
Estrellas
69
Forks
3
Merge medio
9 h 11 min
PR fusionados (30 d)
38

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

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 gopherium/framework

Todos los issues de gopherium/framework

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.