From 03226f2d34135a939880245818a7bf1432aedcea Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 25 May 2017 20:38:36 +0530 Subject: [PATCH] Fix start server button in preferences causing a hang if the server fails to start --- src/calibre/gui2/preferences/server.py | 1 + src/calibre/srv/embedded.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/calibre/gui2/preferences/server.py b/src/calibre/gui2/preferences/server.py index 07c1dee3aa..2f62a054c2 100644 --- a/src/calibre/gui2/preferences/server.py +++ b/src/calibre/gui2/preferences/server.py @@ -798,6 +798,7 @@ class ConfigWidget(ConfigWidgetBase): _('Failed to start content server'), as_unicode(self.gui.content_server.exception) ).exec_() + self.gui.content_server = None return self.main_tab.update_button_state() finally: diff --git a/src/calibre/srv/embedded.py b/src/calibre/srv/embedded.py index ab5fb7b976..5d705751a2 100644 --- a/src/calibre/srv/embedded.py +++ b/src/calibre/srv/embedded.py @@ -64,6 +64,7 @@ class Server(object): self.loop.initialize_socket() except Exception as e: self.loop = None + self.exception = e if self.start_failure_callback is not None: try: self.start_failure_callback(as_unicode(e)) @@ -86,6 +87,7 @@ class Server(object): from calibre.utils.rapydscript import compile_srv compile_srv() except BaseException as e: + self.exception = e if self.start_failure_callback is not None: try: self.start_failure_callback(as_unicode(e))