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

the lane S2 red is a share of routed requests, not a timing flake

Abierto
#1,364 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
74/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
go
Área
testing-qa

Línea de trabajo

Start with internal/lane/e2e_test.go, especially lines 449, 467-468, 931, and 945, and run TestS2TheDefaultGoesSlowAndTheRouterMoves. Trace firstsScripted and the TTFT ledger, then add failure output showing each request's lane and ledger belief. Add deterministic coverage for exactly 2 and 3 broken answers, asserting about 79% and 0.0% respectively.

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

Descripción

area:tests bug sev:papercut

What happens

TestS2TheDefaultGoesSlowAndTheRouterMoves in internal/lane fails when other
suites run beside it. On a quiet box it passes. 316 consecutive runs in
isolation never reproduced it.

That is exactly the shape the repository says to file rather than rerun.

What the red actually means, which is not what it looks like

The assertion at internal/lane/e2e_test.go:467-468 does NOT divide a measured
time. It divides firstsScripted, a lookup into scriptedFirstWorld
(e2e_test.go:945). The wall figures computed at line 449 are logged and
asserted nowhere.

So the test is not timing-sensitive in the way its name suggests. It asserts a
share of requests that were routed to the good lane after the break.

The margin is a cliff, not a slope. Out of 20 routed requests:

answers from the broken lane asserted figure
2 about 79%
3 exactly 0.0%

A pass sits ONE request away from that cliff every time it passes. The red means
at least 3 of 20 routed requests reached the broken lane after the break, and
nothing about the failure output says so.

How load gets in

One channel only: the ledger's TTFT: e2eWorld(result.ttft) at
e2e_test.go:931, a measured time multiplied by 100, against a real gap of
8.4ms versus 40ms. Under load the wall p90 moved from 1.0s to 10.4s while the
asserted figure never moved at all, which is why the two look unrelated until
you follow the ledger.

Replication

Run the lane suite with the box under load, for instance a full internal/tui3
run beside it. It is not reliable, which is the point. In isolation it is green
316 times out of 316.

Acceptance

Not "it stops failing". A rerun proves nothing here.

  1. The failure output prints the per-request lane sequence and the ledger's
    belief at each step. Today a reader cannot tell 3-of-20 from 10-of-20.
  2. A deterministic test that drives the ledger to exactly 2 and exactly 3 broken
    answers and asserts 79% and 0.0%, so the cliff is written down rather than
    discovered.
  3. Only then, whatever fix follows.

Not a fix

task/lane-s2-under-load at a41e4abc5 is an unfinished edit from an agent that
died mid-change. It is parked, unmerged, and should not be read as a proposal.

Lenguaje dominante
Go
Estrellas
115
Forks
14
Merge medio
9 h 38 min
PR fusionados (30 d)
749

Preparar el entorno

Aún no hemos revisado los archivos de configuración de este proyecto. 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 Agent-Field/CodeAF

Todos los issues de Agent-Field/CodeAF

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.