]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/restful: allow shutdown before we've fully started up 32004/head
authorSage Weil <sage@redhat.com>
Wed, 4 Dec 2019 13:13:44 +0000 (07:13 -0600)
committerSage Weil <sage@redhat.com>
Wed, 4 Dec 2019 13:13:44 +0000 (07:13 -0600)
Sometimes we get shutdown() before self.server has been assigned.

Signed-off-by: Sage Weil <sage@redhat.com>
src/pybind/mgr/restful/module.py

index cad8fe581e578563b852bc56afc7b351a746945f..d73973afe4261c9d80b14ced2ccc21abe022ed9a 100644 (file)
@@ -250,6 +250,7 @@ class Module(MgrModule):
 
 
     def serve(self):
+        self.log.debug('serve enter')
         while not self.stop_server:
             try:
                 self._serve()
@@ -262,6 +263,7 @@ class Module(MgrModule):
             # Wait and clear the threading event
             self.serve_event.wait()
             self.serve_event.clear()
+        self.log.debug('serve exit')
 
     def refresh_keys(self):
         self.keys = {}
@@ -329,19 +331,26 @@ class Module(MgrModule):
             ),
             ssl_context=(cert_fname, pkey_fname),
         )
-
-        self.server.serve_forever()
+        if self.stop_server:
+            self.log.debug('made server, but stop flag set')
+        else:
+            self.log.debug('made server, serving forever')
+            self.server.serve_forever()
 
 
     def shutdown(self):
+        self.log.debug('shutdown enter')
         try:
             self.stop_server = True
             if self.server:
+                self.log.debug('calling server.shutdown')
                 self.server.shutdown()
+                self.log.debug('called server.shutdown')
             self.serve_event.set()
         except:
             self.log.error(str(traceback.format_exc()))
             raise
+        self.log.debug('shutdown exit')
 
 
     def restart(self):