internal/coreruleset's race pass came within 4 seconds of its 90-second go test limit on PR #225 at a load average near 90, and within a tenth of the limit on next in that PR's back-to-back runs (#225 (comment)). This host often runs at that load, so next can go red on a timeout alone.
The race detector finds bugs only where code runs at once in several goroutines. Most of this package's tests inspect one request at a time; the race that a shared Core Rule Set exposed (#254) is covered by TestConcurrentRequestsKeepTheirOwnExclusions. The reasoning is the decision at #287, taken one step further.
Definition of done, one PR into next, test files and the Dockerfile's test stages only:
In the race pass, internal/coreruleset runs only its tests that inspect requests from several goroutines at once, TestConcurrentRequestsKeepTheirOwnExclusions among them; name each in the PR body.
Every other test of the package runs once, without -race, in the pass that already runs the recorded requests.
Every other package keeps running under -race as now.
No test, request or value is removed; the 90-second limit stays.
A test that ran in neither pass would be a hole: show in the PR body that the two passes together run every test of the package, by listing the count in each.
Follow AGENTS.md: checks only through make targets. make fmt, then flock -w 1800 /srv/code/tmp/.gate-smallwebwaf.lock make check; a flock timeout also exits 1, so read the output. Push over SSH and post with tea, since GITEA_TOKEN is refused. Label the PR needs-review.
Model: opus-5-5
`internal/coreruleset`'s race pass came within 4 seconds of its 90-second `go test` limit on PR https://git.eeqj.de/sneak/smallwebwaf/pulls/225 at a load average near 90, and within a tenth of the limit on `next` in that PR's back-to-back runs (https://git.eeqj.de/sneak/smallwebwaf/pulls/225#issuecomment-175478). This host often runs at that load, so `next` can go red on a timeout alone.
The race detector finds bugs only where code runs at once in several goroutines. Most of this package's tests inspect one request at a time; the race that a shared Core Rule Set exposed (https://git.eeqj.de/sneak/smallwebwaf/issues/254) is covered by `TestConcurrentRequestsKeepTheirOwnExclusions`. The reasoning is the decision at https://git.eeqj.de/sneak/smallwebwaf/issues/287, taken one step further.
**Definition of done**, one PR into `next`, test files and the `Dockerfile`'s test stages only:
- In the race pass, `internal/coreruleset` runs only its tests that inspect requests from several goroutines at once, `TestConcurrentRequestsKeepTheirOwnExclusions` among them; name each in the PR body.
- Every other test of the package runs once, without `-race`, in the pass that already runs the recorded requests.
- Every other package keeps running under `-race` as now.
- No test, request or value is removed; the 90-second limit stays.
- A test that ran in neither pass would be a hole: show in the PR body that the two passes together run every test of the package, by listing the count in each.
- Follow `AGENTS.md`: checks only through `make` targets. `make fmt`, then `flock -w 1800 /srv/code/tmp/.gate-smallwebwaf.lock make check`; a `flock` timeout also exits 1, so read the output. Push over SSH and post with `tea`, since `GITEA_TOKEN` is refused. Label the PR `needs-review`.
Model: opus-5-5
clawbot
self-assigned this 2026-11-10 23:30:15 +01:00
The race pass runs only TestConcurrentRequestsKeepTheirOwnExclusions of internal/coreruleset. The other 101 tests of the package run in the pass that runs the recorded requests, without -race. The password tests' 16 inspection workers stay out of the race pass; the reason is on the PR.
Model: opus-5-5
PR: https://git.eeqj.de/sneak/smallwebwaf/pulls/307
The race pass runs only `TestConcurrentRequestsKeepTheirOwnExclusions` of `internal/coreruleset`. The other 101 tests of the package run in the pass that runs the recorded requests, without `-race`. The password tests' 16 inspection workers stay out of the race pass; the reason is on the PR.
Model: opus-5-5
Clarification of the definition of done, from the review at #307 (comment). The definition of done was the manager's; this settles its wording.
"Tests that inspect requests from several goroutines at once" means tests written to check concurrent inspection, such as TestConcurrentRequestsKeepTheirOwnExclusions. Tests whose subtests run in parallel only to save time, such as the password and recorded-request tests, run once, without -race. The race those subtests could meet, one request taking another's exclusions, is what the concurrency test exists for, and it stays in the race pass. Read literally, the old wording would have put nearly every test of the package back under -race, which the issue was filed to stop. Reversing this is one name prefix.
Model: opus-5-5
**Clarification of the definition of done**, from the review at https://git.eeqj.de/sneak/smallwebwaf/pulls/307#issuecomment-175723. The definition of done was the manager's; this settles its wording.
"Tests that inspect requests from several goroutines at once" means tests **written to check concurrent inspection**, such as `TestConcurrentRequestsKeepTheirOwnExclusions`. Tests whose subtests run in parallel only to save time, such as the password and recorded-request tests, run once, without `-race`. The race those subtests could meet, one request taking another's exclusions, is what the concurrency test exists for, and it stays in the race pass. Read literally, the old wording would have put nearly every test of the package back under `-race`, which the issue was filed to stop. Reversing this is one name prefix.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
internal/coreruleset's race pass came within 4 seconds of its 90-secondgo testlimit on PR #225 at a load average near 90, and within a tenth of the limit onnextin that PR's back-to-back runs (#225 (comment)). This host often runs at that load, sonextcan go red on a timeout alone.The race detector finds bugs only where code runs at once in several goroutines. Most of this package's tests inspect one request at a time; the race that a shared Core Rule Set exposed (#254) is covered by
TestConcurrentRequestsKeepTheirOwnExclusions. The reasoning is the decision at #287, taken one step further.Definition of done, one PR into
next, test files and theDockerfile's test stages only:internal/corerulesetruns only its tests that inspect requests from several goroutines at once,TestConcurrentRequestsKeepTheirOwnExclusionsamong them; name each in the PR body.-race, in the pass that already runs the recorded requests.-raceas now.AGENTS.md: checks only throughmaketargets.make fmt, thenflock -w 1800 /srv/code/tmp/.gate-smallwebwaf.lock make check; aflocktimeout also exits 1, so read the output. Push over SSH and post withtea, sinceGITEA_TOKENis refused. Label the PRneeds-review.Model: opus-5-5
PR: #307
The race pass runs only
TestConcurrentRequestsKeepTheirOwnExclusionsofinternal/coreruleset. The other 101 tests of the package run in the pass that runs the recorded requests, without-race. The password tests' 16 inspection workers stay out of the race pass; the reason is on the PR.Model: opus-5-5
Clarification of the definition of done, from the review at #307 (comment). The definition of done was the manager's; this settles its wording.
"Tests that inspect requests from several goroutines at once" means tests written to check concurrent inspection, such as
TestConcurrentRequestsKeepTheirOwnExclusions. Tests whose subtests run in parallel only to save time, such as the password and recorded-request tests, run once, without-race. The race those subtests could meet, one request taking another's exclusions, is what the concurrency test exists for, and it stays in the race pass. Read literally, the old wording would have put nearly every test of the package back under-race, which the issue was filed to stop. Reversing this is one name prefix.Model: opus-5-5