Skip to content

fix(server): flush outbound queue before closing ports + silence CI trace spam#69

Merged
st0o0 merged 2 commits into
mainfrom
fix/h10-server-buffered-response-close
Jul 5, 2026
Merged

fix(server): flush outbound queue before closing ports + silence CI trace spam#69
st0o0 merged 2 commits into
mainfrom
fix/h10-server-buffered-response-close

Conversation

@st0o0

@st0o0 st0o0 commented Jul 5, 2026

Copy link
Copy Markdown
Member

Summary

  • CloseAllPorts() data loss fix: When the ApplicationBridge's upstream
    finish triggered CloseAllPorts(), any response data still queued in
    _outboundQueue was silently discarded — the method called
    Complete(_outNetwork) without draining the queue first. Under CI load
    (Linux, Docker matrix variant), this race caused the H1.0 E2E roundtrip
    test to fail with "HTTP/1.0 connection closed before response body was
    complete." Now routes through CompleteAfterFlushingOutbound() when the
    queue is non-empty.

  • Tracing leak in ServerStartupReliabilitySpec: The test configured
    global Debug-level Senf tracing on stderr but never disabled it. Since
    Servus.Senf.Tracing is a process-wide singleton, all subsequent tests
    inherited the debug listener — flooding CI logs with thousands of
    [Debug][Stage] lines in the Docker matrix variant. Added
    Tracing.Disable() in the finally block.

Test plan

  • H1.0 E2E roundtrip tests pass (previously flaky on Linux CI)
  • Full E2E suite passes (101 tests, verified 5× locally)
  • Full unit suite passes (5961 tests)
  • Docker CI variant no longer floods logs with Debug trace output

@st0o0 st0o0 merged commit de5112a into main Jul 5, 2026
5 checks passed
@st0o0 st0o0 deleted the fix/h10-server-buffered-response-close branch July 5, 2026 12:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant