-
Notifications
You must be signed in to change notification settings - Fork 93
Open
Description
execCommand provides streaming ability via onStdout/onStderr option.
However, even if the option is provided, it still collects the output to own array:
Line 394 in 6c57d8f
| output.stdout.push(chunk.toString(options.encoding)) |
When the output is very large it fails to convert the array to string:
https://github.com/steelbrain/node-ssh/blob/main/src/index.ts#L423-L424
RangeError: Invalid string length
at Array.join (<anonymous>)
at Channel.<anonymous> (redacted/node_modules/node-ssh/lib/esm/index.mjs:302:47)
at Channel.emit (node:events:526:35)
at Channel.doClose (redacted\node_modules\ssh2\lib\utils.js:101:21)
at Object.onceWrapper (node:events:628:28)
at Channel.emit (node:events:526:35)
at endReadableNT (node:internal/streams/readable:1408:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
Besides the error, I think it wastes resources and defeats the purpose of using streams.
Metadata
Metadata
Assignees
Labels
No labels