Skip to content

pkg/opencode: httptest.Server blocks 5s in Close every run; reconcile tests fail under CPU load #28

Description

@Snider

Two latent defects surfaced during #27's post-fix suite runs, present on main as well — filed as a dedicated pass rather than a rider on the lint PR.

1. A connection is left open at httptest.Server.Close — every run, silent.
Each full-suite run shows httptest.Server blocked in Close ... in state active with a 5.0s block before the harness gives up. This is invisible while the suite is green — it only costs 5s per run — but it means some client/transport in pkg/opencode is not closed or its request not drained.

2. TestReconcile_Good_AdoptsMatchingContainer and TestReconcile_NoMatchingContainers_ZeroRecovered depend on wall-clock timing tightly enough to fail under load.
Measured on 2026-08-08 (fix/lint-109 branch, but latent on main): 2 failures / 8 full runs — both on the first two post-edit runs where cold-cache compilation ran in parallel with the tests; 6 consecutive greens once warm. main worktree: 0 failures / 5 runs. Failure signature: 5.0s timeouts + medium not mounted: default. The only production diff in the package (proxy.go Director→Rewrite) was A/B-tested in both directions and disconfirmed as the mechanism — the signature reads as CPU starvation against a 5s budget.

The fix shape is likely: find and close the leaked connection (1), and give the reconcile tests either a synchronisation point or a budget that survives a loaded machine (2) — not a bare timeout bump.

Findings and measurements by the agent-c7 session during PR #27.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions