• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

floatdrop / zoxy / 28697662394

04 Jul 2026 06:25AM UTC coverage: 96.556% (-0.2%) from 96.789%
28697662394

push

github

floatdrop
fix: TLS yield timers are connection-scoped — a stale yield corrupted the ring

Found by CI on the pooled-TLS test (SIGABRT: completion.next != null
at reap). The yield completion lived inside the Tls leg struct, and
the upstream leg is attempt-scoped at a fixed address inside the conn:
request 1 arms a yield; the response is delivered via a wire event
before it fires; dispose frees the leg; request 2 resumes the pooled
channel into the same field and arms its own yield — the same
Completion address submitted while still in the ring. The stale-yield
guard checked for a missing leg but not a replaced one.

The yield flag and completion now live on the connection, one pair per
side: an arm while a yield is in flight coalesces (the pending yield
pumps whatever leg is current when it fires — progress is idempotent),
so re-arming an in-ring completion is impossible by construction. The
downstream callback also tolerates the leg being gone (kTLS switchover
frees it), closing that theoretical cousin of the same race.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

6112 of 6330 relevant lines covered (96.56%)

0.97 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

94.74
src/proxy/upstream_pool.zig


Source Not Available

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc