gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Asked Answered
L

5

27

I've installed gunicorn inside my virtualenv.

From this directory:

manage.py
/onbytes/wsgi.py

I run the following:

gunicorn onbytes.wsgi:application

And I get the following error:

Traceback (most recent call last):
  File "/home/ymorin007/.virtualenvs/onbytes.com/bin/gunicorn", line 9, in <module>
    load_entry_point('gunicorn==19.0.0', 'console_scripts', 'gunicorn')()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 74, in run
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 166, in run
    super(Application, self).run()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 71, in run
    Arbiter(self).run()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 169, in run
    self.manage_workers()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 477, in manage_workers
    self.spawn_workers()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 537, in spawn_workers
    time.sleep(0.1 * random.random())
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 209, in handle_chld
    self.reap_workers()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 459, in reap_workers
    raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

running gunicorn onbytes.wsgi:application --preload will get me this error:

Traceback (most recent call last):
  File "/home/ymorin007/.virtualenvs/onbytes.com/bin/gunicorn", line 9, in <module>
    load_entry_point('gunicorn==19.0.0', 'console_scripts', 'gunicorn')()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 74, in run
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 166, in run
    super(Application, self).run()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 71, in run
    Arbiter(self).run()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 57, in __init__
    self.setup(app)
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 113, in setup
    self.app.wsgi()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 66, in wsgi
    self.callable = self.load()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
    return self.load_wsgiapp()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/util.py", line 356, in import_app
    __import__(module)
  File "/home/ymorin007/sites/onbytes.com/src/onbytes/wsgi.py", line 8, in <module>
    from django.core.wsgi import get_wsgi_application
ImportError: No module named django.core.wsgi
Legrand answered 8/7, 2014 at 19:11 Comment(1)
Running in debug mode could provide some more useful info gunicorn onbytes.wsgi:application --debug --log-level debug.Smalto
L
36

Probably there is an issue in your application, not in gunicorn.

Try:

gunicorn --log-file=- onbytes.wsgi:application

Since the version R19, Gunicorn doesn’t log by default in the console and the --debug option was deprecated.

Lead answered 5/9, 2014 at 15:32 Comment(1)
This is the first solution for every gunicorn startup error.Granville
A
25

Adding --preload the gunincorn command showed me that I had to do :

pip install ordereddict

That package was missing.

Arbitrate answered 27/5, 2015 at 15:25 Comment(3)
Thanks. In my case, adding the --preload was the secret ingredient to get useful debug output that pointed at the underlying error in my app. --log-file and --log-level debug did not help much.Inexperience
This. this. this. All of the other "show me better logs" options only displayed the same error in different places. This one also showed me the actual problem - in my case it was missing an init.pyLoreenlorelei
I would make a version of this the correct answer if I could -- gunicorn --preload actually gave me a traceback to figure out what was failingCrosspollinate
O
14

I had a similar problem and it was because i was running the command in the wrong directory. In a standard django installation, try running gunicorn in the same directory that 'manage.py'

Oblivion answered 27/8, 2014 at 21:12 Comment(0)
R
1

in my case after adding --preload to Procfile, I understand that I should install psycopg2-binary with pip:

pip install psycopg2-binary
Retrenchment answered 6/5, 2019 at 14:5 Comment(1)
amazing! this fixes when mlflow server doesnt work; one might also have to pip install boto3 protobuf==3.20.* might be worth trying without boto3 thoughPekoe
I
0

My case I was running a docker file that wasn't updated with all the necessary requirements.txt dependencies, so when booting the containers it failed "ModuleNotFound" and eventually threw the "worker failed to boot" error as well.

Adding the Module that was not found to the requirements.txt file and rebuilding the docker containers solved this error for me.

Insanitary answered 7/9, 2022 at 18:6 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.