ReviewOS

home-lang/home

Bun parity: harden HTTP/2 handshake, GOAWAY, and teardown fidelity

#420
Open chris opened this 10 days ago ·
10 days ago

Tracks follow-up work from #66.\n\nCurrent limitation:\n- performServerHandshake validation is permissive and does not require a fully usable Duplex transport\n- some raw protocol teardown paths model GOAWAY in memory without serialized frame behavior\n- worker and child-process fixtures can pass without true HTTP/2 handle cleanup and event-loop isolation\n\nAcceptance criteria:\n- validate handshake transports against the required Duplex capabilities\n- serialize, parse, and order GOAWAY and terminal stream events on raw transports\n- preserve lastStreamID parity and protocol validation across real frame paths\n- ensure worker and child-process termination releases HTTP/2 handles without synthetic shortcuts\n- add adversarial teardown regressions and keep current copied fixtures green\n\nParent tracker: #66

10 days ago

Progress in 7b12502:

  • GOAWAY is serialized as a connection-level frame with correct network byte order.
  • inbound GOAWAY now materializes the peer last-stream ID.
  • implicit GOAWAY uses the last peer-initiated stream ID while preserving explicit positive overrides.
  • malformed stream and frame paths now produce protocol-correct GOAWAY or RST_STREAM behavior.
  • server-push validation failures release never-announced stream state without sending an illegal RST_STREAM.

The final five-file HTTP/2 matrix is 329 pass / 6 upstream skips / 0 fail in both Debug and ReleaseFast. This issue remains open because its broader transport-capability validation, worker and child-process isolation, and adversarial teardown acceptance criteria are not all covered by this batch.

Sign in to comment on this issue.