Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

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

未关闭
#1,364 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
74/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
go
领域
testing-qa

调研方向

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.

由索引模型根据 Issue 内容生成。

描述

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.

主要语言
Go
星标
115
派生
14
平均合并
9 小时 35 分钟
30 天内合并 PR
752

环境准备

我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

Agent-Field/CodeAF 的其他 Issue

查看 Agent-Field/CodeAF 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。