Releases: benoitc/gunicorn
Release list
19.4.3
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
Exceptionclass 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.pyframework example (#1117) - update Debian/Ubuntu installations instructions (#1112)
- clarify
pythonpathsetting description (#1080) - tweak some example for python3
- clarify
sendfiledocumentation - 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_configclass 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
--sendfilesettings to enable/disable sendfile. fix #856 . - add the selectors module to the code base. #886
- fix #862 add
--max-requests-jittersetting 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
--debugoption 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
PyTestclass 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
gaiohttpusing 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_aborthook 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
--threadsoptions allows to set multiple
threads to listen on connection - deprecate
gunicorn_djangoandgunicorn_paster - switch QUIT and TERM signal
- reap workers in SIGCHLD handler
- add universal wheel support
- use
email.utils.formatdatein gunicorn.util.http_date - deprecate the
--debugoption - fix: log exceptions that occur after response start …
- allows loading of applications from
.pycfiles (#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.Applicationwithout 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-logfileand--access-logfileif 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
setupmethod before setting num_workers - fix: FileWrapper inherit from
objectnow - 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_gunicorndjango 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
hubon 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: