diff --git a/gunicorn/workers/base_async.py b/gunicorn/workers/base_async.py index 7b2daf91..0aaaa4dd 100644 --- a/gunicorn/workers/base_async.py +++ b/gunicorn/workers/base_async.py @@ -95,10 +95,11 @@ class AsyncWorker(base.Worker): listener_name, self.cfg) environ["wsgi.multithread"] = True self.nr += 1 - if self.alive and self.nr >= self.max_requests: - self.log.info("Autorestarting worker after current request.") + if self.nr >= self.max_requests: + if self.alive: + self.log.info("Autorestarting worker after current request.") + self.alive = False resp.force_close() - self.alive = False if not self.cfg.keepalive: resp.force_close() diff --git a/gunicorn/workers/gthread.py b/gunicorn/workers/gthread.py index 1f1a0057..c7f64b61 100644 --- a/gunicorn/workers/gthread.py +++ b/gunicorn/workers/gthread.py @@ -308,9 +308,10 @@ class ThreadWorker(base.Worker): environ["wsgi.multithread"] = True self.nr += 1 if self.nr >= self.max_requests: - self.log.info("Autorestarting worker after current request.") + if self.alive: + self.log.info("Autorestarting worker after current request.") + self.alive = False resp.force_close() - self.alive = False if not self.cfg.keepalive: resp.force_close()