This will restore graceful shutdown of workers by master.
Also worker_int callback is moved from handle_exit (INT and TERM before switching) to handle_quit(INT and QUIT).
An exposed SSL option, `ciphers`, was added in Python 2.7 and breaks older
versions of Python with an unexpected kwargs error.
I'm not sure if this is the best way to fix this, and I'm happy to consider
other approachs. Some things I'm a bit up in the air about are:
i) This is only broken for Python 2.6 and older whose ssl module doesn't
expose this. Do the other types of workers not use ssl module, and thus might
be able to make use of the `cipher` kwarg?
ii) Should we silently or explicity fail? I couldn't find a nice way to do
this because the configuration setting has a default value and resulted in
stringy code to special case the one setting`.
What I would really like to do would add a "python_version" validator that
could intelligently handle this, but I went off into the weeds figuring out
how the SettingsMeta class works. :)
"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.
Allows for changing concurrency configuration without changing
application code. This is an environment variable that other
communities (e.g. Rails) are starting to follow, and have enjoyed for a
little while now.
Have discussed with /cc @benoitc in the past and he was +1
This changes allows a use to set the driver used to send the data over a
unix socket. 'dgram' for a dgram driver or 'stream' for a stream driver.
'stream' is the default. The change is documented in the settings
documentation.
fix#671
Gunicorn should generally only bother writing its own log and let
the application handle the way it want to log its own errors.
Now the log_file option will be overriden by the gunicorn options
`--error-logfile` and `--access-logfile` if they are given.
The remote address should return the direct client addr not a forwarded
header.
This is a breaking change. The main problem with such changes is the way
the application or framework will handle the URL completion. Indeed most
of them are only expecting a TCP socket.
fix#633