execCommand throws on large outputs
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- node.js, typescript
- Domaine
- backend
Piste de recherche
Commencez dans src/index.ts, au niveau de la collecte de la sortie de execCommand et des lignes de conversion finales indiquées dans le rapport. Reproduisez une commande produisant une sortie très volumineuse en utilisant onStdout/onStderr, puis exécutez les vérifications pertinentes du projet ; le travail est terminé lorsque le streaming ne provoque plus Invalid string length ni d’accumulation inutile de la sortie complète.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- TypeScript
- Étoiles
- 1k
- Forks
- 94
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de steelbrain/node-ssh
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
steelbrain/node-ssh#487 ·
-
ssh-certificate supportOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
steelbrain/node-ssh#482 · 3 commentaires ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
steelbrain/node-ssh#473 · 1 commentaire · 1 réaction ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 20/100
steelbrain/node-ssh#472 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
steelbrain/node-ssh#471 · 1 commentaire ·
Toutes les issues de steelbrain/node-ssh
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
devswha/herdr-web-ui#3875 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
-
area: runtime chore cli consistency dependencies developer-experience difficulty: easy discovery documentation enhancement good first issue help wanted hygiene json-output packaging priority: P3 tests version
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
discovery:other factory-active task-identify-harness-labels-done task-identify-issue-type-done
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
vercel/ai#25068 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
create-strapi-app doesn't await writing license.txt, so a failed write skips its error handlingOuverteflag: invalid template issue: bug severity: low source: cli status: pending reproduction version: 5
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
strapi/strapi#28637 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours