Deprecate the --debug setting

"Limits the number of worker processes to 1" hasn't been true since
06a4dc6 (fix one error in gunicorn_paster, global conf was ignored,
2010-06-22), although it was true when the line was added in 3c7d532
(Large refactor of the documentation and website, 2010-05-22).

"changes some error handling that's sent to clients" hasn't been true
since feb86d3 (don't display the traceback in the HTTP response,
2013-09-27).

The only remaining actions that --debug had were disabling --preload
and hiding debug-level config logging.  The former seems useless (just
disable --preload directly) and the latter at doesn't seem useful
enough for a new setting (just turn down --log-level).  With this
commit, --preload always works and you always get debug-level config
logging.

I left a stub Debug entry in gunicorn.config, which we can leave in
place while folks convert any gunicorn scripts and configurations to
drop --debug.  When the time comes, we can just remove that entry.  I
also the boolean-config tests to use --preload, since that will still
be around after we remove the dummy Debug entry.

Fixes #700.
This commit is contained in:
W. Trevor King 2014-02-13 11:48:28 -08:00
parent 0b6077accc
commit 2277901a72
5 changed files with 21 additions and 29 deletions

View File

@ -215,10 +215,8 @@ debug
* ``--debug``
* ``False``
Turn on debugging in the server.
This limits the number of worker processes to 1 and changes some error
handling that's sent to clients.
**DEPRECATED**: This no functionality was removed after v18.0. This
option is now a no-op.
reload
~~~~~~

View File

@ -96,21 +96,16 @@ class Arbiter(object):
self.worker_class = self.cfg.worker_class
self.address = self.cfg.address
self.num_workers = self.cfg.workers
self.debug = self.cfg.debug
self.timeout = self.cfg.timeout
self.proc_name = self.cfg.proc_name
if self.cfg.debug:
self.log.debug("Current configuration:")
for config, value in sorted(self.cfg.settings.items(),
key=lambda setting: setting[1]):
self.log.debug(" %s: %s", config, value.value)
self.log.debug("Current configuration:")
for config, value in sorted(self.cfg.settings.items(),
key=lambda setting: setting[1]):
self.log.debug(" %s: %s", config, value.value)
if self.cfg.preload_app:
if not self.cfg.debug:
self.app.wsgi()
else:
self.log.warning("debug mode: app isn't preloaded.")
self.app.wsgi()
def start(self):
"""\

View File

@ -701,8 +701,8 @@ class Debug(Setting):
desc = """\
Turn on debugging in the server.
This limits the number of worker processes to 1 and changes some error
handling that's sent to clients.
**DEPRECATED**: This no functionality was removed after v18.0.
This option is now a no-op.
"""

View File

@ -46,7 +46,6 @@ class Worker(object):
self.max_requests = cfg.max_requests or MAXSIZE
self.alive = True
self.log = log
self.debug = cfg.debug
self.tmp = WorkerTmp(cfg)
def __str__(self):

View File

@ -57,7 +57,7 @@ def test_property_access():
# Class was loaded
t.eq(c.worker_class, SyncWorker)
# Debug affects workers
# Workers defaults to 1
t.eq(c.workers, 1)
c.set("workers", 3)
t.eq(c.workers, 3)
@ -89,15 +89,15 @@ def test_property_access():
def test_bool_validation():
c = config.Config()
t.eq(c.debug, False)
c.set("debug", True)
t.eq(c.debug, True)
c.set("debug", "true")
t.eq(c.debug, True)
c.set("debug", "false")
t.eq(c.debug, False)
t.raises(ValueError, c.set, "debug", "zilch")
t.raises(TypeError, c.set, "debug", 4)
t.eq(c.preload_app, False)
c.set("preload_app", True)
t.eq(c.preload_app, True)
c.set("preload_app", "true")
t.eq(c.preload_app, True)
c.set("preload_app", "false")
t.eq(c.preload_app, False)
t.raises(ValueError, c.set, "preload_app", "zilch")
t.raises(TypeError, c.set, "preload_app", 4)
def test_pos_int_validation():
c = config.Config()
@ -169,9 +169,9 @@ def test_cmd_line():
with AltArgs(["prog_name", "-w", "3"]):
app = NoConfigApp()
t.eq(app.cfg.workers, 3)
with AltArgs(["prog_name", "--debug"]):
with AltArgs(["prog_name", "--preload"]):
app = NoConfigApp()
t.eq(app.cfg.debug, True)
t.eq(app.cfg.preload_app, True)
def test_app_config():
with AltArgs():