nodejs / nodejs/node

Node repl crashes when trying to call back a large multiline item

Offen
#59,431 9 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

confirmed-bug readline repl
Vorherrschende Sprache
JavaScript
Sterne
122k
Forks
37.4k
Ø Merge
4 T. 3 Std.
Gemergte PRs (30 T.)
272

Beschreibung

Version

24.4.1

Platform
Linux panta-rog 6.14.0-27-generic #27-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 17:01:58 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Subsystem

No response

What steps will reproduce the bug?

Paste a huge multi-line JSON into repl.
Then bring it back via arrow up.
Then press arrow up again.

How often does it reproduce? Is there a required condition?

I can reproduce it with a long JSON.

What is the expected behavior? Why is that the expected behavior?

No crash.

What do you see instead?
TypeError: Cannot read properties of undefined (reading 'length')
    at REPLServer.[_multilineMove] (node:internal/readline/interface:1092:36)
    at REPLServer.[_moveUpOrHistoryPrev] (node:internal/readline/interface:1149:27)
    at REPLServer.[_ttyWrite] [as _ttyWrite] (node:internal/readline/interface:1498:37)
    at REPLServer.self._ttyWrite (node:repl:1035:9)
    at ReadStream.onkeypress (node:internal/readline/interface:284:20)
    at ReadStream.emit (node:events:507:28)
    at ReadStream.emit (node:domain:489:12)
    at emitKeys (node:internal/readline/utils:371:14)
    at emitKeys.next (<anonymous>)
    at ReadStream.onData (node:internal/readline/emitKeypressEvents:64:36)
Additional information

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, den Absturz in der Node REPL mit einem großen mehrzeiligen JSON-Element zu reproduzieren; untersuche dann internal/readline/interface bei _multilineMove und _moveUpOrHistoryPrev sowie node:repl. Erledigt ist die Aufgabe, wenn das zweimalige Drücken der Pfeiltaste nach oben weder den gemeldeten TypeError auslöst noch die REPL zum Absturz bringt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, linux, node.js
Bereich
cli
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
55/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.