]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr: close restful socket after exec 35213/head
authorliushi <liu.shi@navercorp.com>
Mon, 23 Dec 2019 09:09:29 +0000 (17:09 +0800)
committerShyukri Shyukriev <shshyukriev@suse.com>
Sat, 23 May 2020 13:10:11 +0000 (16:10 +0300)
Signed-off-by: liushi <liu.shi@navercorp.com>
(cherry picked from commit ec3a696a5d328936b611b2a19fc9ab12ae183b48)

src/pybind/mgr/restful/module.py

index cad8fe581e578563b852bc56afc7b351a746945f..bb113312406b7bc558ca920cfc4b2eb7de2086f3 100644 (file)
@@ -13,6 +13,7 @@ import threading
 import traceback
 import six
 import socket
+import fcntl
 
 from . import common
 from . import context
@@ -329,8 +330,15 @@ class Module(MgrModule):
             ),
             ssl_context=(cert_fname, pkey_fname),
         )
-
-        self.server.serve_forever()
+        sock_fd_flag = fcntl.fcntl(self.server.socket.fileno(), fcntl.F_GETFD)
+        if not (sock_fd_flag & fcntl.FD_CLOEXEC):
+            self.log.debug("set server socket close-on-exec")
+            fcntl.fcntl(self.server.socket.fileno(), fcntl.F_SETFD, sock_fd_flag | fcntl.FD_CLOEXEC)
+        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):