fix(loader-server): the loader keeps running when the editor IPC channel disconnects

Offen Anfängerfreundlich
#138 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
85/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
bun, typescript
Bereich
backend, networking

Rechercherichtung

Lies apps/server/src/server.ts im Bereich der Editor-IPC-Einrichtung bei den Zeilen 57–61 und vergleiche sie anschließend mit der Behandlung der Trennung in apps/server/src/worker.ts bei den Zeilen 18–19. Behandle im Editor-IPC-Modus die Trennung des Editor-Kanals, indem du den Child-Prozess stoppst und den Loader beendest. Fertig ist es, wenn Loader und Worker nach der Trennung des Editors stoppen und der Game-Server seine Ports freigibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

app:server bug
Which app is this bug report for?

server

Issue description

With --editor-ipc, the worker exits when its parent (the loader) disconnects (worker.ts#L18-L19). The loader itself has no process.on("disconnect") handler (server.ts#L57-L61).

If the editor crashes or is killed, the loader keeps running: its open IPC channel to the child keeps the event loop alive, and the game server stays up and keeps its ports. The next editor run then fails to start the game.

Found by reading the code path (not reproduced).

Expected: the loader and its worker stop when the editor goes away.

Suggested fix: in editor-IPC mode, on process.on("disconnect"), kill the child and exit.

Found during a read-only audit of main @ 044c766 (2026-11-11).

Code sample
if (editorIpc) {
  process.on("message", (message) => {
    if (child && child.exitCode === null) child.send(message as object);
  });
} // no "disconnect" handler in the loader process
Versions
  • @nanoforge-dev/loader-client / @nanoforge-dev/loader-server / @nanoforge-dev/loader-website 1.7.0 (main @ 044c766)
  • Bun 1.3.14
  • Linux x86_64
Issue priority

Medium (should be fixed soon)

I have tested this issue on a development release

044c766

Vorherrschende Sprache
TypeScript
Sterne
1
Forks
0
Ø Merge
17 Std. 25 Min.
Gemergte PRs (30 T.)
11

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus NanoForge-dev/Loader

Alle Issues in NanoForge-dev/Loader

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

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