Open
Description
This is a meta issue of somewhat complex issues to look into:
-
writable.end(chunk, callback)
does not properly propagatewrite(chunk, callback)
errors. stream: end(callback) does not propagate write after end to callback #33684 -
writable.end(chunk)
API is ambiguous in relation to optional parameters (i.e. chunk). - docs say
writable.end(chunk, callback)
register error handler, but will still result in unhandled exception (stream: fix writable.end callback behavior #34101) -
setEncoding
should apply transform when reading fromReadable
not when pushing into it. stream: socket.setEncoding(null) to receive binary Buffers rather than strings has no effect #6038 -
Readable
confusion/inconsistency between mutatingflowing
and usingpause
/resume
, e.g.pipe
usespause
butpipeOnDrain
usesflowing=true
. -
Readable
maybeReadMore
does not take explicit pausing into consideration and can read data despite being paused, e.g. ifpause()
is called before_construct(callback)
has completed, it will start reading despite being paused. stream: don't read when paused #34106 -
Readable.wrap
is not streams compliant. (stream: cleanup and fix Readable.wrap #34204) -
Readable.wrap
does not auto destroy wrapped stream. - What to do if user manually emits falsy error on stream, e.g.
emit('error', undefined)
? - What if
finished(stream)
is called on an errored stream? - What if
pipeline(stream)
is called on an errored stream? -
finished
registers excessive amount of listeners. - Should pipeline explicitly use
'data'
,'drain'
,pause()
,resume()
API in order to avoid possible complexity/bugs frompipe
? - Is
DuplexSocket
needed? Is it broken? -
js_socket_stream
is not streams compliant.- emits
'error'
instead of usingdestroy(err)
- depends on flowing after pause (without resume) (http2 test fail)
- GC issues? stream: save error in state #34103 (comment)
- Crash in wrap_js_stream.js during doClose #27258
- other...
- emits
-
TLSSocket
is not streams compliant.- emits
'error'
instead of usingdestroy(err)
- other...
- emits
- pipeline + generator issues. pipeline + generator - Premature close #33792. stream: simpler Readable async iterator #34035
- unclear
'end'
semantics fornet.Socket
. Probably also related tojs_socket_stream
. 'end' event not called on connected socket wrapped with tls #10871