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:
JavaScript
x
132
132
1
11:22:45 web.1 | 2012-11-12 11:22:45 [18442] [ERROR] Exception in worker process:
2
11:22:45 web.1 | Traceback (most recent call last):
3
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
4
11:22:45 web.1 | worker.init_process()
5
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
6
11:22:45 web.1 | self.wsgi = self.app.wsgi()
7
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
8
11:22:45 web.1 | self.callable = self.load()
9
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
10
11:22:45 web.1 | return util.import_app(self.app_uri)
11
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
12
11:22:45 web.1 | app = eval(obj, mod.__dict__)
13
11:22:45 web.1 | File "<string>", line 1, in <module>
14
11:22:45 web.1 | NameError: name 'application' is not defined
15
11:22:45 web.1 | Traceback (most recent call last):
16
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
17
11:22:45 web.1 | worker.init_process()
18
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
19
11:22:45 web.1 | self.wsgi = self.app.wsgi()
20
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
21
11:22:45 web.1 | self.callable = self.load()
22
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
23
11:22:45 web.1 | return util.import_app(self.app_uri)
24
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
25
11:22:45 web.1 | app = eval(obj, mod.__dict__)
26
11:22:45 web.1 | File "<string>", line 1, in <module>
27
11:22:45 web.1 | NameError: name 'application' is not defined
28
11:22:45 web.1 | 2012-11-12 11:22:45 [18442] [INFO] Worker exiting (pid: 18442)
29
11:22:45 web.1 | 2012-11-12 11:22:45 [18443] [ERROR] Exception in worker process:
30
11:22:45 web.1 | Traceback (most recent call last):
31
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
32
11:22:45 web.1 | worker.init_process()
33
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
34
11:22:45 web.1 | self.wsgi = self.app.wsgi()
35
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
36
11:22:45 web.1 | self.callable = self.load()
37
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
38
11:22:45 web.1 | return util.import_app(self.app_uri)
39
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
40
11:22:45 web.1 | app = eval(obj, mod.__dict__)
41
11:22:45 web.1 | File "<string>", line 1, in <module>
42
11:22:45 web.1 | NameError: name 'application' is not defined
43
11:22:45 web.1 | Traceback (most recent call last):
44
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
45
11:22:45 web.1 | worker.init_process()
46
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
47
11:22:45 web.1 | self.wsgi = self.app.wsgi()
48
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
49
11:22:45 web.1 | self.callable = self.load()
50
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
51
11:22:45 web.1 | return util.import_app(self.app_uri)
52
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
53
11:22:45 web.1 | app = eval(obj, mod.__dict__)
54
11:22:45 web.1 | File "<string>", line 1, in <module>
55
11:22:45 web.1 | NameError: name 'application' is not defined
56
11:22:45 web.1 | 2012-11-12 11:22:45 [18443] [INFO] Worker exiting (pid: 18443)
57
11:22:45 web.1 | 2012-11-12 11:22:45 [18444] [ERROR] Exception in worker process:
58
11:22:45 web.1 | Traceback (most recent call last):
59
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
60
11:22:45 web.1 | worker.init_process()
61
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
62
11:22:45 web.1 | self.wsgi = self.app.wsgi()
63
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
64
11:22:45 web.1 | self.callable = self.load()
65
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
66
11:22:45 web.1 | return util.import_app(self.app_uri)
67
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
68
11:22:45 web.1 | app = eval(obj, mod.__dict__)
69
11:22:45 web.1 | File "<string>", line 1, in <module>
70
11:22:45 web.1 | NameError: name 'application' is not defined
71
11:22:45 web.1 | Traceback (most recent call last):
72
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
73
11:22:45 web.1 | worker.init_process()
74
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
75
11:22:45 web.1 | self.wsgi = self.app.wsgi()
76
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
77
11:22:45 web.1 | self.callable = self.load()
78
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
79
11:22:45 web.1 | return util.import_app(self.app_uri)
80
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
81
11:22:45 web.1 | app = eval(obj, mod.__dict__)
82
11:22:45 web.1 | File "<string>", line 1, in <module>
83
11:22:45 web.1 | NameError: name 'application' is not defined
84
11:22:45 web.1 | 2012-11-12 11:22:45 [18444] [INFO] Worker exiting (pid: 18444)
85
11:22:45 web.1 | 2012-11-12 11:22:45 [18445] [ERROR] Exception in worker process:
86
11:22:45 web.1 | Traceback (most recent call last):
87
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
88
11:22:45 web.1 | worker.init_process()
89
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
90
11:22:45 web.1 | self.wsgi = self.app.wsgi()
91
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
92
11:22:45 web.1 | self.callable = self.load()
93
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
94
11:22:45 web.1 | return util.import_app(self.app_uri)
95
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
96
11:22:45 web.1 | app = eval(obj, mod.__dict__)
97
11:22:45 web.1 | File "<string>", line 1, in <module>
98
11:22:45 web.1 | NameError: name 'application' is not defined
99
11:22:45 web.1 | Traceback (most recent call last):
100
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
101
11:22:45 web.1 | worker.init_process()
102
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
103
11:22:45 web.1 | self.wsgi = self.app.wsgi()
104
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
105
11:22:45 web.1 | self.callable = self.load()
106
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
107
11:22:45 web.1 | return util.import_app(self.app_uri)
108
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
109
11:22:45 web.1 | app = eval(obj, mod.__dict__)
110
11:22:45 web.1 | File "<string>", line 1, in <module>
111
11:22:45 web.1 | NameError: name 'application' is not defined
112
11:22:45 web.1 | 2012-11-12 11:22:45 [18445] [INFO] Worker exiting (pid: 18445)
113
11:22:45 web.1 | Traceback (most recent call last):
114
11:22:45 web.1 | File "/Users/princekumar/Downloads/tornado-2.4/demos/ChatOnHeroku/bin/gunicorn", line 8, in <module>
115
11:22:45 web.1 | load_entry_point('gunicorn==0.15.0', 'console_scripts', 'gunicorn')()
116
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
117
11:22:45 web.1 | WSGIApplication("%prog [OPTIONS] APP_MODULE").run()
118
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
119
11:22:45 web.1 | Arbiter(self).run()
120
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
121
11:22:45 web.1 | self.halt(reason=inst.reason, exit_status=inst.exit_status)
122
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
123
11:22:45 web.1 | self.stop()
124
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
125
11:22:45 web.1 | self.reap_workers()
126
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
127
11:22:45 web.1 | raise HaltServer(reason, self.WORKER_BOOT_ERROR)
128
11:22:45 web.1 | gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
129
11:22:45 web.1 | exited with code 1
130
11:22:45 system | sending SIGTERM to all processes
131
SIGTERM received
132
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