only create sockets in forked processes not in master

This commit is contained in:
Ankit Patel 2023-02-01 16:06:02 -05:00
parent 792edf6d9a
commit 0a0ef9d140
No known key found for this signature in database
GPG Key ID: 2158139E46CA600D

View File

@ -10,6 +10,7 @@ import signal
import sys
import time
import traceback
import socket
from gunicorn.errors import HaltServer, AppImportError
from gunicorn.pidfile import Pidfile
@ -152,7 +153,8 @@ class Arbiter(object):
for fd in os.environ.pop('GUNICORN_FD').split(','):
fds.append(int(fd))
self.LISTENERS = sock.create_sockets(self.cfg, self.log, fds)
if not (self.cfg.reuse_port and hasattr(socket, 'SO_REUSEPORT')):
self.LISTENERS = sock.create_sockets(self.cfg, self.log, fds)
listeners_str = ",".join([str(lnr) for lnr in self.LISTENERS])
self.log.debug("Arbiter booted")
@ -579,6 +581,8 @@ class Arbiter(object):
try:
util._setproctitle("worker [%s]" % self.proc_name)
self.log.info("Booting worker with pid: %s", worker.pid)
if self.cfg.reuse_port:
worker.sockets = sock.create_sockets(self.cfg, self.log)
self.cfg.post_fork(self, worker)
worker.init_process()
sys.exit(0)