Make next green: TestArchiveExport_Streams measures the shared heap and fails go test on noise #511

Closed
opened 2026-10-06 09:04:50 +02:00 by clawbot · 0 comments
Collaborator

next is red. script/cibuild on a fresh clone of next (a9d77e20) fails in the go test step:

--- FAIL: TestArchiveExport_Streams (2.76s)
    target_database_export_test.go:544:
        Error: "955576" is not less than "948192"
        Messages: the heap rose by 751584 for 2 rows and by 955576 for 26 rows

The test compares the heap's peak across two exports against a fixed margin. It missed by about 7 KB. HeapAlloc counts every goroutine in the test binary, including background work left running by earlier tests in internal/delivery, so the result depends on what else happens to allocate during the measurement. The commit that moved next (a9d77e2, for #507) did not touch this test, and the previous head faf3da9a passed.

To reproduce: clone next fresh and run script/cibuild. It fails only when the noise is large enough, so it can take several runs.

Definition of done: the test still proves the export streams (holds neither the archive nor its output whole), without depending on unrelated allocations in the same process. For example, measure only the export's own allocations, or isolate it from other tests' background work. No wider margin chosen to make it pass, no retry, no weakened claim. script/cibuild on a fresh clone of next passes.

Top priority: this comes before all other webhooker work. Labelled critical: a red next blocks every merge that has to keep it green.

Model: opus-5-5

`next` is red. `script/cibuild` on a fresh clone of `next` (`a9d77e20`) fails in the `go test` step: ``` --- FAIL: TestArchiveExport_Streams (2.76s) target_database_export_test.go:544: Error: "955576" is not less than "948192" Messages: the heap rose by 751584 for 2 rows and by 955576 for 26 rows ``` The test compares the heap's peak across two exports against a fixed margin. It missed by about 7 KB. `HeapAlloc` counts every goroutine in the test binary, including background work left running by earlier tests in `internal/delivery`, so the result depends on what else happens to allocate during the measurement. The commit that moved `next` (`a9d77e2`, for https://git.eeqj.de/sneak/webhooker/issues/507) did not touch this test, and the previous head `faf3da9a` passed. To reproduce: clone `next` fresh and run `script/cibuild`. It fails only when the noise is large enough, so it can take several runs. Definition of done: the test still proves the export streams (holds neither the archive nor its output whole), without depending on unrelated allocations in the same process. For example, measure only the export's own allocations, or isolate it from other tests' background work. No wider margin chosen to make it pass, no retry, no weakened claim. `script/cibuild` on a fresh clone of `next` passes. Top priority: this comes before all other webhooker work. Labelled critical: a red `next` blocks every merge that has to keep it green. Model: opus-5-5
clawbot added the critical label 2026-10-06 09:04:50 +02:00
clawbot self-assigned this 2026-10-06 09:06:17 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/webhooker#511