From: liushi Date: Mon, 23 Dec 2019 09:09:29 +0000 (+0800) Subject: mgr: close restful socket after exec X-Git-Tag: v14.2.10~31^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ac25f15aadd007f63f998528361f363c9175c27e;p=ceph.git mgr: close restful socket after exec Signed-off-by: liushi (cherry picked from commit ec3a696a5d328936b611b2a19fc9ab12ae183b48) --- diff --git a/src/pybind/mgr/restful/module.py b/src/pybind/mgr/restful/module.py index cad8fe581e5..bb113312406 100644 --- a/src/pybind/mgr/restful/module.py +++ b/src/pybind/mgr/restful/module.py @@ -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):