From db975b2b39e295df73eaecd9c0c0faa3285a228e Mon Sep 17 00:00:00 2001 From: Guangcong Luo Date: Thu, 25 Jun 2020 02:28:23 -0700 Subject: [PATCH] Don't automatically restart REPL server on crash This leads to a spinlock that causes #6873 --- lib/repl.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/repl.ts b/lib/repl.ts index 8605b1fbd8..3d2000be6e 100644 --- a/lib/repl.ts +++ b/lib/repl.ts @@ -54,7 +54,6 @@ export const Repl = new class ReplSingleton { // TODO: Windows does support the REPL when using named pipes. For now, // this only supports UNIX sockets. - if (process.platform === 'win32') return; Repl.setupListeners(); @@ -98,22 +97,22 @@ export const Repl = new class ReplSingleton { }); server.once('error', (err: NodeJS.ErrnoException) => { + server.close(); if (err.code === "EADDRINUSE") { fs.unlink(pathname, _err => { if (_err && _err.code !== "ENOENT") { crashlogger(_err, `REPL: ${filename}`); } - server.close(); }); + } else if (err.code === "EACCES") { + console.error(`Could not start REPL server "${filename}": Your OS doesn't support Unix sockets (everything else will still work)`); } else { crashlogger(err, `REPL: ${filename}`); - server.close(); } }); server.once('close', () => { Repl.socketPathnames.delete(pathname); - Repl.start(filename, evalFunction); }); } catch (err) { console.error(`Could not start REPL server "${filename}": ${err}`);