diff --git a/gunicorn/workers/base_async.py b/gunicorn/workers/base_async.py index 0aaaa4dd..6e7ae3f8 100644 --- a/gunicorn/workers/base_async.py +++ b/gunicorn/workers/base_async.py @@ -99,9 +99,8 @@ class AsyncWorker(base.Worker): if self.alive: self.log.info("Autorestarting worker after current request.") self.alive = False - resp.force_close() - if not self.cfg.keepalive: + if not self.alive or not self.cfg.keepalive: resp.force_close() respiter = self.wsgi(environ, resp.start_response) diff --git a/gunicorn/workers/gthread.py b/gunicorn/workers/gthread.py index c7f64b61..5cd3e8a5 100644 --- a/gunicorn/workers/gthread.py +++ b/gunicorn/workers/gthread.py @@ -313,7 +313,7 @@ class ThreadWorker(base.Worker): self.alive = False resp.force_close() - if not self.cfg.keepalive: + if not self.alive or not self.cfg.keepalive: resp.force_close() elif len(self._keep) >= self.max_keepalived: resp.force_close()