Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Ouverte
#1,364 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
74/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
go
Domaine
testing-qa

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
Go
Étoiles
115
Forks
14
Merge moyen
9 h 38 min
PR mergées (30 j)
749

Préparer son environnement

Nous n'avons pas encore vérifié les fichiers d'installation de ce projet. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Agent-Field/CodeAF

Toutes les issues de Agent-Field/CodeAF

Issues similaires

Plus d'issues Go

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.