Repository navigation
Base red: cap the hanging fake Chromium start's AsyncStream buffer - #34436
teamleaderleo wants to merge 2 commits into
Conversation
#34250's hanging makePage made an unbounded AsyncStream, which the concurrency gate refuses (FakeChromiumHosting.swift:44), so base fast gates and cmux-next checks went red. Nothing ever yields to it, so a one-element newest buffer changes no behavior. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-342ae944382c55b76f4c
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
|
teamleaderleo
left a comment
There was a problem hiding this comment.
Review (claude-sonnet-5-5): SHIP at 77faa0b
Review (subagent claude-sonnet-5-5): SHIP at 77faa0b
Checked: the new call has an explicit policy, so none of the three alternatives of the "unbounded AsyncStream buffer" regex in scripts/cmux-next/check-concurrency.sh match (the makeStream branch only matches empty or of:-only parentheses). makeStream(of:bufferingPolicy:) has defaulted parameters, so AsyncStream.makeStream(bufferingPolicy: .bufferingNewest(1)) infers and compiles. Nothing yields, so the stream still never produces a value and the for-await loop ends only on cancellation, then CancellationError is thrown as before; the continuation stays alive via withExtendedLifetime.
Follow-ups: none
Base red fix. #34250 added a hanging
makePageto the test fakeFakeChromiumHostingusingAsyncStream<Void>.makeStream(). The concurrency gate refuses an unbounded AsyncStream buffer (FakeChromiumHosting.swift:44: unbounded AsyncStream buffer (give it a cap and an overflow policy)), socmux-next fast gatesandcmux-next checkshave been red on feat-cmux-next since f3a4bab (base runs 41725135574 and 41727385244).This gives the stream a one-element
.bufferingNewest(1)buffer. Nothing ever yields to it: the stream only ends when the task is cancelled. So behavior is unchanged.Observed / Not run
python3 scripts/cmux-next/prepush-gate.pyreports "no new violations".aScriptCallReturnsNilWhenTheChromiumStartNeverEnds. The change only adds a buffer policy to a stream that never receives an element.Changelog
none
Agent session: agent session
🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes the red
cmux-nextgates caused by the unboundedAsyncStreambuffer introduced in #34250. The hanging fake Chromium start's stream now gets a one-element.bufferingNewest(1)buffer; since nothing ever yields to it, behavior is unchanged.prepush-gate.pyreports no violations.Written for commit 3380e72. Summary will update on new commits.