mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
reloader should survive SyntaxError
This commit is contained in:
parent
3bb4de4dff
commit
d03891a470
@ -532,3 +532,15 @@ def warn(msg):
|
||||
|
||||
print("!!!\n", file=sys.stderr)
|
||||
sys.stderr.flush()
|
||||
|
||||
|
||||
def make_fail_app(msg):
|
||||
|
||||
def app(environ, start_response):
|
||||
start_response("500 Internal Server Error", [
|
||||
("Content-Type", "text/plain"),
|
||||
("Content-Length", str(len(msg)))
|
||||
])
|
||||
return iter([msg])
|
||||
|
||||
return app
|
||||
|
||||
@ -8,6 +8,7 @@ import os
|
||||
import signal
|
||||
import sys
|
||||
import time
|
||||
import traceback
|
||||
from random import randint
|
||||
|
||||
|
||||
@ -116,7 +117,19 @@ class Worker(object):
|
||||
|
||||
self.init_signals()
|
||||
|
||||
self.wsgi = self.app.wsgi()
|
||||
try:
|
||||
self.wsgi = self.app.wsgi()
|
||||
except SyntaxError as e:
|
||||
if not self.reloader:
|
||||
raise
|
||||
|
||||
self.log.exception(e)
|
||||
|
||||
exc_type, exc_val, exc_tb = sys.exc_info()
|
||||
self.reloader.add_extra_file(exc_val.filename)
|
||||
|
||||
tb_string = traceback.format_exc(exc_tb)
|
||||
self.wsgi = util.make_fail_app(tb_string)
|
||||
|
||||
self.cfg.post_worker_init(self)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user