pythondjangogunicorn

gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3> django


I have a django app and trying to set it up with gunicorn first and later with supervisor and nginx.

The app is running with the normal django command perfectly like python manage.py runserver

I installed the gunicorn using pip like pip install gunicorn and django version is 1.5.3

when i run the below command inside the virtual env like below

gunicorn hello.wsgi:application -b xx.xxx.xxx.xx:8000 and faced the error

Traceback (most recent call last):
  File "/root/Envs/proj/bin/gunicorn", line 9, in <module>
    load_entry_point('gunicorn==19.0.0', 'console_scripts', 'gunicorn')()
  File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 74, in run
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
  File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 166, in run
    super(Application, self).run()
  File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 71, in run
    Arbiter(self).run()
  File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 169, in run
    self.manage_workers()
  File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 477, in manage_workers
    self.spawn_workers()
  File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 537, in spawn_workers
    time.sleep(0.1 * random.random())
  File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 209, in handle_chld
    self.reap_workers()
  File "/root/Envs/proj/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>

So why actually the above error is encountered and whats the fix ?


Solution

  • Actually the problem here was the wsgi file itself, previously before django 1.3 the wsgi file was named with an extension of .wsgi, but now in the recent versions it will be created with and extension of .py that is the wsgi file must be a python module

    so the file should be hello_wsgi.py and command should be

    gunicorn  hello:application -b xx.xxx.xxx.xx:8000