From d74f27b75d69c37fac1587930508da6cd953f33c Mon Sep 17 00:00:00 2001
From: drebs <drebs@riseup.net>
Date: Mon, 20 Nov 2017 11:13:53 -0200
Subject: [PATCH] [bug] log and exit on server startup errors

Some errors during server startup could leave the server in a zombie
state (running, but not listening). This commit makes sure the server
stops if errors occur during deferreds created on server startup.

Closes #8997.
---
 src/leap/soledad/server/app.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/leap/soledad/server/app.py b/src/leap/soledad/server/app.py
index 725b1383..77d3a1cd 100644
--- a/src/leap/soledad/server/app.py
+++ b/src/leap/soledad/server/app.py
@@ -39,6 +39,12 @@ def _exit(status):
     reactor.stop()
 
 
+def _log_and_exit(failure):
+    logger.error('Error while starting up server: %r'
+                 % failure.getErrorMessage())
+    _exit(20)
+
+
 #
 # necessary checks
 #
@@ -124,6 +130,7 @@ def run(application):
     d = check_schema_versions(conf['couch_url'])
     d.addCallback(lambda _: create_services(local_port, public_port,
                                             application))
+    d.addErrback(_log_and_exit)
 
 
 application = service.Application('soledad-server')
-- 
GitLab