execCommand throws on large outputs
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- node.js, typescript
- Área
- backend
Línea de trabajo
Comienza en src/index.ts, en la recopilación de la salida de execCommand y las líneas de conversión final enlazadas en el informe. Reproduce un comando con una salida muy grande usando onStdout/onStderr y luego ejecuta las comprobaciones relevantes del proyecto; la tarea está terminada cuando el streaming ya no provoca Invalid string length ni una acumulación innecesaria de toda la salida.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
execCommand provides streaming ability via onStdout/onStderr option.
However, even if the option is provided, it still collects the output to own array:
https://github.com/steelbrain/node-ssh/blob/6c57d8f127ab1173cee68de598ff6940575af149/src/index.ts#L394
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.
- Lenguaje dominante
- TypeScript
- Estrellas
- 1k
- Forks
- 94
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de steelbrain/node-ssh
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
steelbrain/node-ssh#487 ·
-
ssh-certificate supportAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
steelbrain/node-ssh#482 · 3 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
steelbrain/node-ssh#473 · 1 comentario · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
steelbrain/node-ssh#472 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
steelbrain/node-ssh#471 · 1 comentario ·
Todos los issues de steelbrain/node-ssh
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
cli: `execCargoMetadata` decodes stdout per chunk, corrupting non-ASCII paths across pipe boundariesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 62/100
lingdojo/kana-dojo#34127 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
osmlab/name-suggestion-index#13104 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100