about summary refs log tree commit diff
diff options
context:
space:
mode:
authorerin <sylphofelectricity@gmail.com>2017-12-12 13:19:33 -0600
committerEugen Rochko <eugen@zeonfederated.com>2017-12-12 20:19:33 +0100
commitc986218c3a98564e38d68689150b33a6aa6c4b3a (patch)
tree0aad3a6f1223db2b7ff3dc34c1f95965709c7055
parent0c8b1eb577f11d33c27f28afdfdac807b7e27845 (diff)
Improve error handling in streaming/index.js (#5968)
On an unhandled worker exception, we should log the exception
and exit with nonzero status, instead of letting workers
silently fail and restarting them in an endless loop.

Note: we previously tried to handle the `'error'` signal.
That's not a signal Node fires; my patch traps `'uncaughtException'`,
which is what the code was _trying_ to do.
-rw-r--r--streaming/index.js4
1 files changed, 3 insertions, 1 deletions
diff --git a/streaming/index.js b/streaming/index.js
index 31c597cf0..198eac1ae 100644
--- a/streaming/index.js
+++ b/streaming/index.js
@@ -563,12 +563,14 @@ const startWorker = (workerId) => {
 
   const onError = (err) => {
     log.error(err);
+    server.close();
+    process.exit(0);
   };
 
   process.on('SIGINT', onExit);
   process.on('SIGTERM', onExit);
   process.on('exit', onExit);
-  process.on('error', onError);
+  process.on('uncaughtException', onError);
 };
 
 throng({