Skip to content

fix(node:stream): emit write callback errors#2245

Open
andrewtdiz wants to merge 4 commits into
PerryTS:mainfrom
andrewtdiz:codex/node-compat-stream-write-callback-error
Open

fix(node:stream): emit write callback errors#2245
andrewtdiz wants to merge 4 commits into
PerryTS:mainfrom
andrewtdiz:codex/node-compat-stream-write-callback-error

Conversation

@andrewtdiz
Copy link
Copy Markdown
Contributor

Summary

  • route Writable _write/constructor write callback errors through stream destroy after invoking the write callback
  • preserve Node's callback-before-error ordering while setting destroyed/errored via the existing destroy path
  • remove the now-passing known-failure entries for writable sink write errors and the same failure through pipe()

DeepWiki

  • reference/deepwiki/nodejs-node-writable-write-callback-error-2026-05-28.md

Verification

  • Baseline exact node-suite/stream/writable/sink-write-rejection-becomes-error: FAIL, report test-parity/reports/parity_report_20260528_080029.json
  • First exact node-suite/stream/writable/sink-write-rejection-becomes-error: PASS, report test-parity/reports/parity_report_20260528_080441.json
  • Related exact node-suite/stream/pipe/dest-error-propagates: PASS, report test-parity/reports/parity_report_20260528_080524.json
  • Final exact node-suite/stream/writable/sink-write-rejection-becomes-error: PASS, report test-parity/reports/parity_report_20260528_080600.json
  • Final exact node-suite/stream/pipe/dest-error-propagates: PASS, report test-parity/reports/parity_report_20260528_080606.json
  • cargo test -p perry-runtime writable_write_callback_error_emits_error_and_destroys
  • cargo check -p perry-runtime -p perry-stdlib -p perry-codegen
  • cargo fmt --check
  • jq empty test-parity/known_failures.json
  • git diff --check

Non-goals

  • no broad writable state-machine rewrite
  • no stream pipeline callback work
  • no promises.finished rejection cleanup
  • no unrelated stream error/destroy known-failure removals

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