Skip to content
Advertisement

Python-Tornado on Heroku

I am trying to deploy Tornado on Heroku. I am able to run a simple “hello world” app on using this method: http://kzk9.net/deploying-tornado-on-heroku-mac-os-x

But while trying Tornado demo-app “chatdemo”, the server is crashing with following logs:

11:22:45 web.1  | 2012-11-12 11:22:45 [18442] [ERROR] Exception in worker process:
11:22:45 web.1  | Traceback (most recent call last):
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/arbiter.py", line 461, in spawn_worker
11:22:45 web.1  |     worker.init_process()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/workers/base.py", line 101, in init_process
11:22:45 web.1  |     self.wsgi = self.app.wsgi()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/base.py", line 101, in wsgi
11:22:45 web.1  |     self.callable = self.load()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 24, in load
11:22:45 web.1  |     return util.import_app(self.app_uri)
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/util.py", line 292, in import_app
11:22:45 web.1  |     app = eval(obj, mod.__dict__)
11:22:45 web.1  |   File "<string>", line 1, in <module>
11:22:45 web.1  | NameError: name 'application' is not defined
11:22:45 web.1  | Traceback (most recent call last):
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/arbiter.py", line 461, in spawn_worker
11:22:45 web.1  |     worker.init_process()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/workers/base.py", line 101, in init_process
11:22:45 web.1  |     self.wsgi = self.app.wsgi()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/base.py", line 101, in wsgi
11:22:45 web.1  |     self.callable = self.load()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 24, in load
11:22:45 web.1  |     return util.import_app(self.app_uri)
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/util.py", line 292, in import_app
11:22:45 web.1  |     app = eval(obj, mod.__dict__)
11:22:45 web.1  |   File "<string>", line 1, in <module>
11:22:45 web.1  | NameError: name 'application' is not defined
11:22:45 web.1  | 2012-11-12 11:22:45 [18442] [INFO] Worker exiting (pid: 18442)
11:22:45 web.1  | 2012-11-12 11:22:45 [18443] [ERROR] Exception in worker process:
11:22:45 web.1  | Traceback (most recent call last):
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/arbiter.py", line 461, in spawn_worker
11:22:45 web.1  |     worker.init_process()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/workers/base.py", line 101, in init_process
11:22:45 web.1  |     self.wsgi = self.app.wsgi()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/base.py", line 101, in wsgi
11:22:45 web.1  |     self.callable = self.load()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 24, in load
11:22:45 web.1  |     return util.import_app(self.app_uri)
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/util.py", line 292, in import_app
11:22:45 web.1  |     app = eval(obj, mod.__dict__)
11:22:45 web.1  |   File "<string>", line 1, in <module>
11:22:45 web.1  | NameError: name 'application' is not defined
11:22:45 web.1  | Traceback (most recent call last):
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/arbiter.py", line 461, in spawn_worker
11:22:45 web.1  |     worker.init_process()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/workers/base.py", line 101, in init_process
11:22:45 web.1  |     self.wsgi = self.app.wsgi()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/base.py", line 101, in wsgi
11:22:45 web.1  |     self.callable = self.load()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 24, in load
11:22:45 web.1  |     return util.import_app(self.app_uri)
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/util.py", line 292, in import_app
11:22:45 web.1  |     app = eval(obj, mod.__dict__)
11:22:45 web.1  |   File "<string>", line 1, in <module>
11:22:45 web.1  | NameError: name 'application' is not defined
11:22:45 web.1  | 2012-11-12 11:22:45 [18443] [INFO] Worker exiting (pid: 18443)
11:22:45 web.1  | 2012-11-12 11:22:45 [18444] [ERROR] Exception in worker process:
11:22:45 web.1  | Traceback (most recent call last):
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/arbiter.py", line 461, in spawn_worker
11:22:45 web.1  |     worker.init_process()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/workers/base.py", line 101, in init_process
11:22:45 web.1  |     self.wsgi = self.app.wsgi()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/base.py", line 101, in wsgi
11:22:45 web.1  |     self.callable = self.load()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 24, in load
11:22:45 web.1  |     return util.import_app(self.app_uri)
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/util.py", line 292, in import_app
11:22:45 web.1  |     app = eval(obj, mod.__dict__)
11:22:45 web.1  |   File "<string>", line 1, in <module>
11:22:45 web.1  | NameError: name 'application' is not defined
11:22:45 web.1  | Traceback (most recent call last):
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/arbiter.py", line 461, in spawn_worker
11:22:45 web.1  |     worker.init_process()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/workers/base.py", line 101, in init_process
11:22:45 web.1  |     self.wsgi = self.app.wsgi()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/base.py", line 101, in wsgi
11:22:45 web.1  |     self.callable = self.load()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 24, in load
11:22:45 web.1  |     return util.import_app(self.app_uri)
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/util.py", line 292, in import_app
11:22:45 web.1  |     app = eval(obj, mod.__dict__)
11:22:45 web.1  |   File "<string>", line 1, in <module>
11:22:45 web.1  | NameError: name 'application' is not defined
11:22:45 web.1  | 2012-11-12 11:22:45 [18444] [INFO] Worker exiting (pid: 18444)
11:22:45 web.1  | 2012-11-12 11:22:45 [18445] [ERROR] Exception in worker process:
11:22:45 web.1  | Traceback (most recent call last):
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/arbiter.py", line 461, in spawn_worker
11:22:45 web.1  |     worker.init_process()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/workers/base.py", line 101, in init_process
11:22:45 web.1  |     self.wsgi = self.app.wsgi()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/base.py", line 101, in wsgi
11:22:45 web.1  |     self.callable = self.load()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 24, in load
11:22:45 web.1  |     return util.import_app(self.app_uri)
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/util.py", line 292, in import_app
11:22:45 web.1  |     app = eval(obj, mod.__dict__)
11:22:45 web.1  |   File "<string>", line 1, in <module>
11:22:45 web.1  | NameError: name 'application' is not defined
11:22:45 web.1  | Traceback (most recent call last):
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/arbiter.py", line 461, in spawn_worker
11:22:45 web.1  |     worker.init_process()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/workers/base.py", line 101, in init_process
11:22:45 web.1  |     self.wsgi = self.app.wsgi()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/base.py", line 101, in wsgi
11:22:45 web.1  |     self.callable = self.load()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 24, in load
11:22:45 web.1  |     return util.import_app(self.app_uri)
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/util.py", line 292, in import_app
11:22:45 web.1  |     app = eval(obj, mod.__dict__)
11:22:45 web.1  |   File "<string>", line 1, in <module>
11:22:45 web.1  | NameError: name 'application' is not defined
11:22:45 web.1  | 2012-11-12 11:22:45 [18445] [INFO] Worker exiting (pid: 18445)
11:22:45 web.1  | Traceback (most recent call last):
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/bin/gunicorn", line 8, in <module>
11:22:45 web.1  |     load_entry_point('gunicorn==0.15.0', 'console_scripts', 'gunicorn')()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 32, in run
11:22:45 web.1  |     WSGIApplication("%prog [OPTIONS] APP_MODULE").run()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/app/base.py", line 124, in run
11:22:45 web.1  |     Arbiter(self).run()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/arbiter.py", line 185, in run
11:22:45 web.1  |     self.halt(reason=inst.reason, exit_status=inst.exit_status)
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/arbiter.py", line 280, in halt
11:22:45 web.1  |     self.stop()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/arbiter.py", line 328, in stop
11:22:45 web.1  |     self.reap_workers()
11:22:45 web.1  |   File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/lib/python2.7/site-packages/gunicorn/arbiter.py", line 421, in reap_workers
11:22:45 web.1  |     raise HaltServer(reason, self.WORKER_BOOT_ERROR)
11:22:45 web.1  | gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
11:22:45 web.1  | exited with code 1
11:22:45 system | sending SIGTERM to all processes
SIGTERM received

Anybody has any idea whats wrong?

Advertisement

Answer

Check your procfile and requirements.txt. If anyone is looking, here is one working example of same official chat demo deployed on Heroku

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement