Releases: benoitc/gunicorn
19.4.2
== 19.4.2 ==
=== Core ===
- improvement: handle HaltServer in manage_workers (#1095)
- fix: Do not rely on sendfile sending requested count (#1155)
- fix: claridy --no-sendfile default (#1156)
- fix: LoggingCatch sendfile failure from no file descriptor (#1160)
=== Logging ===
- fix: Always send access log to syslog if syslog is on
- fix: check auth before trying to own a file (#1157)
=== Documentation ===
- fix: Fix Slowloris broken link. (#1142)
- Tweak markup in faq.rst
=== Testing ===
- fix: gaiohttp test (#1164)
19.4.1
Gunicorn 19.4 has been released
Gunicorn 19.4 has been released. This is a new version with some new features and fixes.
Changes
Core
- fix: make sure that a user is able to access to the logs after dropping a
privilege (#1116) - improvement: inherit the
Exception
class where it needs to be (#997) - fix: make sure headers are always encodedas latin1 RFC 2616 (#1102)
- improvement: reduce arbiter noise (#1078)
- fix: don't close the unix socket when the worker exit (#1088)
- improvement: Make last logged worker count an explicit instance var (#1078)
- improvement: prefix config file with its type (#836)
- improvement: pidfile handing (#1042)
- fix: catch OSError as well as ValueError on race condition (#1052)
- improve support of ipv6 by backporting urlparse.urlsplit from Python 2.7 to
Python 2.6. - fix: raise InvalidRequestLine when the line contains maliscious data
(#1023) - fix: fix argument to disable sendfile
- fix: add gthread to the list of supported workers (#1011)
- improvement: retry socket binding up to five times upon EADDRNOTAVAIL
(#1004) - breaking change: only honor headers that can be encoded in ascii to comply to
the RFC 7230 (See #1151).
Logging
- add new parameters to access log (#1132)
- fix: make sure that files handles are correctly reopenebd on HUP
(#627) - include request URL in error message (#1071)
- get username in access logs (#1069)
- fix statsd logging support on Python 3 (#1010)
Testing
- use last version of mock.
- many fixes in Travis CI support
- miscellaneous improvements in tests
Thread worker
- fix: Fix self.nr usage in ThreadedWorker so that auto restart works as
expected (#1031)
Gevent worker
- fix quit signal handling (#1128)
- add support for Python 3 (#1066)
- fix: make graceful shutdown thread-safe (#1032)
Tornado worker
AIOHttp worker
- add SSL support (#1105)
Documentation
- fix link to proc name setting (#1144)
- fix worker class documentation (#1141, #1104)
- clarify graceful timeout documentation (#1137)
- don't duplicate NGINX config files examples (#1050, #1048)
- add
web.py
framework example (#1117) - update Debian/Ubuntu installations instructions (#1112)
- clarify
pythonpath
setting description (#1080) - tweak some example for python3
- clarify
sendfile
documentation - miscellaneous typos in source code comments (thanks!)
- clarify why REMOTE_ADD may not be the user's IP address (#1037)
Misc
- fix: reloader should survive SyntaxError (#994)
- fix: expose the reloader class to the worker.
Full changelog is available here: 19.3...19.4
More
You can find the documentation here:
http://docs.gunicorn.org/en/19.4/
Latest version is also available on Pypi:
https://pypi.python.org/pypi/gunicorn/19.4.0
Gunicorn 19.3 has been released
Gunicorn 19.3 has been released. This is a new version with some new features and fixes.
Changes:
Core
- fix:#978 make sure a listener is inheritable
- add
check_config
class method to workers - fix select timeout in sync worker with multiple connections (#983)
- allows workers to access to the reloader. close #984
- raise TypeError instead of AssertionError
Logging
- make Logger.loglevel a class attribute
Documentation
- fix fix syntax errors in
examples/gunicorn_rc
(#988)
Full changelog is available here:
More
You can find the documentation here:
http://docs.gunicorn.org/en/19.3/
Latest version is also available on Pypi:
Gunicorn 19.2.1 has been released
Gunicorn 19.2.1 is a patch release with fixes.
Changes:
Logging
- expose loglevel in the Logger class
AsyncIO worker (gaiohttp)
- fix #977 fix initial crash
Documentation
- document security mailing-list in the contributing page.
Full changelog is available here:
More
You can find the documentation here:
http://docs.gunicorn.org/en/19.2.1/
Latest version is also available on Pypi:
Gunicorn 19.2 has been released
Gunicorn 19.2 is a major release with many improvements and fixes.
Changes:
Core
- optimize the sync workers when listening on a single interface
- add
--sendfile
settings to enable/disable sendfile. fix #856 . - add the selectors module to the code base. #886
- fix #862 add
--max-requests-jitter
setting to set the maximum jitter to add to the
max-requests setting. - fix #899 propagate proxy_protocol_info to keep-alive requests
- fix #863 worker timeout: dynamic timeout has been removed, fix a race
condition error - fix: Avoid world writable file
- fix #917: the deprecated
--debug
option has been removed.
Logging
- fix #941 set logconfig default to paster more trivially
- add statsd-prefix config setting: set the prefix to use when emitting statsd
metrics - fix #832 log to console by default
- fix #845 set the gunicorn loggers from the paste config
Thread Worker
- fix #908 make sure the worker can continue to accept requests
Eventlet Worker
- fix #867 , Fix eventlet shutdown to actively shut down the workers.
Documentation
Many improvements and fixes have been done, see the detailled changelog for
more informations.
Full changelog is available here:
More
You can find the documentation here:
http://docs.gunicorn.org/en/19.2/
Latest version is also available on Pypi:
Gunicorn 19.1.1 has been released
Gunicorn 19.1.1 is a minor release with some fixes.
Changes:
Core
- fix #835: display correct pid of already running instance
- fix : fix
PyTest
class in setup.py.
Logging
- fix #838 : statsd logger, send statsd timing metrics in milliseconds
- fix #839 : statsd logger, allows for empty log message while pushing metrics and restore worker number in DEBUG logs
- fix #850: add timezone info to logging
- fix #853: Respect logger_class setting unless statsd is on
AioHttp worker
- fix #830 make sure gaiohttp worker is shipped with gunicorn.
Full changelog is available here:
More
You can find the documentation here:
http://docs.gunicorn.org/en/19.1.1/
Latest version is also available on Pypi:
Gunicorn 19.1 has been released
Gunicorn 19.1 is a major release with new features and fixes.
Changes:
Core
- fix #785: handle binary type address given to a client socket address
- fix graceful shutdown. make sure QUIT and TERMS signals are switched
everywhere. - support loading config from module (#799)
- fix check for file-like objects (#805)
- fix #815 args validation in WSGIApplication.init
- fix #787 check if we load a pyc file or not.
Tornado worker
- fix #771: support tornado 4.0
- fix #783: x_headers error. The x-forwarded-headers option has been removed c4873681299212d6082cd9902740eef18c2f14f1. The discussion is
available on #633.
AioHttp worker
- fix: fetch all body in input. fix #803
- fix: don't install the worker if python < 3.3
- fix #822: Support UNIX sockets in gaiohttp worker
Async worker
- fix #790 StopIteration shouldn't be catched at this level.
Logging
- add statsd logging handler fix #748
Paster
- fix #809 Set global logging configuration from a Paste config.
Extra
- fix RuntimeError in gunicorn.reloader (#807)
Documentation
- update faq: put a note on how `watch logs in the console since many people asked for it.
Full changelog is available here:
More
You can find the documentation here:
http://docs.gunicorn.org/en/19.1/
Latest version is also available on Pypi:
Gunicorn 19.0 has been released
Gunicorn 19.0 is a major release with new features and fixes. This version improve a lot the usage of Gunicorn with python 3 by adding two new workers to it: gthread
a fully threaded async worker using futures and gaiohttp
a worker using asyncio.
Breaking Changes
Switch QUIT and TERM signals
With this change, when gunicorn receives a QUIT all the workers are
killed immediately and exit and TERM is used for the graceful shutdown.
Note: the old behaviour was based on the NGINX but the new one is more
correct according the following doc:
https://www.gnu.org/software/libc/manual/html_node/Termination-Signals.html
also it is complying with the way the signals are sent by heroku:
Deprecations
run_gunicorn
, gunicorn_django
and gunicorn_paster
are now completely deprecated and will be removed in the next release. Use the gunicorn
command instead.
Changes:
core
- add aiohttp worker named
gaiohttp
using asyncio. Full async worker
on python 3. - fix HTTP-violating excess whitespace in write_error output
- fix: try to log what happened in the worker after a timeout, add a
worker_abort
hook on SIGABRT signal. - fix: save listener socket name in workers so we can handle buffered
keep-alive requests after the listener has closed. - add on_exit hook called just before exiting gunicorn.
- add support for python 3.4
- fix: do not swallow unexpected errors when reaping
- fix: remove incompatible SSL option with python 2.6
- add new async gthread worker and
--threads
options allows to set multiple
threads to listen on connection - deprecate
gunicorn_django
andgunicorn_paster
- switch QUIT and TERM signal
- reap workers in SIGCHLD handler
- add universal wheel support
- use
email.utils.formatdate
in gunicorn.util.http_date - deprecate the
--debug
option - fix: log exceptions that occur after response start …
- allows loading of applications from
.pyc
files (#693) - fix: issue #691, raw_env config file parsing
- use a dynamic timeout to wait for the optimal time. (Reduce power
usage) - fix python3 support when notifying the arbiter
- add: honor $WEB_CONCURRENCY environment variable. Useful for heroku
setups. - add: include tz offset in access log
- add: include access logs in the syslog handler.
- add --reload option for code reloading
- add the capability to load
gunicorn.base.Application
without the loading of the arguments of the command line. It allows you to embed gunicorn in your own application. - improve: set wsgi.multithread to True for async workers
- fix logging: make sure to redirect wsgi.errors when needed
- add: syslog logging can now be done to a unix socket
- fix logging: don't try to redirect stdout/stderr to the logfile.
- fix logging: don't propagate log
- improve logging: file option can be overriden by the gunicorn options
--error-logfile
and--access-logfile
if they are given. - fix: dont' override SERVER_* by the Host header
- fix: handle_error
- add more option to configure SSL
- fix: sendfile with SSL
- add: worker_int callback (to react on SIGTERM)
- fix: don't depend on entry point for internal classes, now absolute
modules path can be given. - fix: Error messages are now encoded in latin1
- fix: request line length check
- improvement: proxy_allow_ips: Allow proxy protocol if "*" specified
- fix: run worker's
setup
method before setting num_workers - fix: FileWrapper inherit from
object
now - fix: Error messages are now encoded in latin1
- fix: don't spam the console on SIGWINCH.
- fix: logging -don't stringify T and D logging atoms (#621)
- add support for the latest django version
- deprecate
run_gunicorn
django option - fix: sys imported twice
gevent worker
- fix: make sure to stop all listeners
- fix: monkey patching is now done in the worker
- fix: "global name 'hub' is not defined"
- fix: reinit
hub
on old versions of gevent - support gevent 1.0
- fix: add subprocess in monket patching
- fix: add support for multiple listener
eventlet worker
- fix: merge duplicate EventletWorker.init_process method (fixes #657)
- fix: missing errno import for eventlet sendfile patch
- fix: add support for multiple listener
tornado worker
- add gracefull stop support
Full changelog is available here:
More
You can find the documentation here:
http://docs.gunicorn.org/en/19.0/
Latest version is also available on Pypi:
Gunicorn 18.0 has been released
Gunicorn 18.0 is a major release with new features and fixes. With this release the commands gunicorn_django
and gunicorn_paster
are now deprecated. They will be removed in the next major release R19. You can now easily launch your django or paster applications by only using the gunicorn
command line. See the documentation and the following changes for more more information.
Changes
- new: add
-e/--env
command line argument to pass an environment variables to
gunicorn - new: add
--chdir
command line argument to specified directory
before apps loading. - new: add wsgi.file_wrapper support in async workers
- new: add
--paste
command line argument to set the paster config file - deprecated: the command
gunicorn_django
is now deprecated. You should now
run your application with the WSGI interface installed with your project (see
https://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/gunicorn/) for
more infos. - deprecated: the command
gunicorn_paste
is deprecated. You now should use
the new--paste
argument to set the configuration file of your paster
application. - fix: Removes unmatched leading quote from the beginning of the default access
log format string - fix: null timeout
- fix: gevent worker
- fix: don't reload the paster app when using pserve
- fix: after closing for error do not keep alive the connection
- fix: responses 1xx, 204 and 304 should not force the connection to be closed
Full changelog is available here:
More
You can find the documentation here:
http://docs.gunicorn.org/en/18.0/
Latest version is also available on Pypi: