-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Comparing changes
Open a pull request
base repository: benoitc/gunicorn
base: 20.0.4
head repository: benoitc/gunicorn
compare: 20.1.0
Commits on May 31, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 13c5d72 - Browse repository at this point
Copy the full SHA 13c5d72View commit details -
Configuration menu - View commit details
-
Copy full SHA for 93d2687 - Browse repository at this point
Copy the full SHA 93d2687View commit details -
Configuration menu - View commit details
-
Copy full SHA for 000236a - Browse repository at this point
Copy the full SHA 000236aView commit details
Commits on Jul 16, 2019
-
Various code improvements contributed by dilyanpalauzov.
These were originally based on 19.9.0 code and were rebased with conflicts resolved. Fixed #1690. Co-Authored-By: dilyanpalauzov <git-dpa@aegee.org> Signed-off-by: Brett Randall <javabrett@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for b014fa7 - Browse repository at this point
Copy the full SHA b014fa7View commit details
Commits on Nov 26, 2019
-
Configuration menu - View commit details
-
Copy full SHA for ff1dbfe - Browse repository at this point
Copy the full SHA ff1dbfeView commit details
Commits on Nov 28, 2019
-
Configuration menu - View commit details
-
Copy full SHA for ed90163 - Browse repository at this point
Copy the full SHA ed90163View commit details
Commits on Dec 3, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 9c147f6 - Browse repository at this point
Copy the full SHA 9c147f6View commit details -
Merge pull request #2210 from benoitc/update-maintainers
Add Brett Randall to MAINTAINERS
Configuration menu - View commit details
-
Copy full SHA for 91e9dcb - Browse repository at this point
Copy the full SHA 91e9dcbView commit details -
Bumped py3 min version in setup.py to 3.5 (was 3.4).
Signed-off-by: Brett Randall <javabrett@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 4ef01b1 - Browse repository at this point
Copy the full SHA 4ef01b1View commit details
Commits on Dec 14, 2019
-
Fix sample command syntax highlighting in run.rst
Extra `:` was causing the syntax highlighting to mess up, resulting in the docs containing the `..code-block:: text` markup
Configuration menu - View commit details
-
Copy full SHA for 5a57d59 - Browse repository at this point
Copy the full SHA 5a57d59View commit details
Commits on Dec 15, 2019
-
Configuration menu - View commit details
-
Copy full SHA for cfc93ad - Browse repository at this point
Copy the full SHA cfc93adView commit details
Commits on Dec 30, 2019
-
add os.path.abspath() in dirname generation of the reloader
Otherwise adding a watcher for a file located in the working directory generates an empty dirname, resulting in the following error: inotify.calls.InotifyError: Call failed (should not be -1): (-1) ERRNO=(0) Caused by the fact that we call inotify with an empty path
Configuration menu - View commit details
-
Copy full SHA for e5310d1 - Browse repository at this point
Copy the full SHA e5310d1View commit details -
Merge pull request #1784 from tnir/1599-pycodestyle-ci
Enable pycodestyle
Configuration menu - View commit details
-
Copy full SHA for e636bf8 - Browse repository at this point
Copy the full SHA e636bf8View commit details -
Merge pull request #2227 from mikaeldusenne/hotfix/empty-dirname-inotify
add os.path.abspath() in dirname generation of the reloader
Configuration menu - View commit details
-
Copy full SHA for 57fbbce - Browse repository at this point
Copy the full SHA 57fbbceView commit details
Commits on Jan 1, 2020
-
Don't build universal wheel, since Python 2 support has been removed.
This reverts commit 765b8ab .
Configuration menu - View commit details
-
Copy full SHA for 7cce20e - Browse repository at this point
Copy the full SHA 7cce20eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2ec7493 - Browse repository at this point
Copy the full SHA 2ec7493View commit details -
Merge pull request #2228 from benoitc/no-universal-wheel
Don't build universal wheel, as Python 2 support has been removed
Configuration menu - View commit details
-
Copy full SHA for 1e0ab52 - Browse repository at this point
Copy the full SHA 1e0ab52View commit details -
Merge pull request #2229 from benoitc/docs-3-5-min
Updated requires Python to >= 3.5
Configuration menu - View commit details
-
Copy full SHA for 9c1438f - Browse repository at this point
Copy the full SHA 9c1438fView commit details
Commits on Jan 4, 2020
-
Use socket.sendfile() instead of os.sendfile().
Fixes #2223. Unfortunately, eventlet doesn't implement GreenSocket.sendfile, so we have to do it for it. Add gevent and eventlet to tox.ini and add tests to make sure we can at least import the workers. Some tests that this actually functions would be nice... Update the gevent and eventlet setup extras to require the versions that are enforced in their worker modules.
Configuration menu - View commit details
-
Copy full SHA for 2d40e6d - Browse repository at this point
Copy the full SHA 2d40e6dView commit details
Commits on Jan 6, 2020
-
Merge pull request #2230 from benoitc/issue2223
Use socket.sendfile() instead of os.sendfile().
2Configuration menu - View commit details
-
Copy full SHA for abc621b - Browse repository at this point
Copy the full SHA abc621bView commit details
Commits on Jan 10, 2020
-
remove version from the Server header
while we still want to know which server is running to ease operation, the version was giving too much information on the installation, so let's remove it.
Configuration menu - View commit details
-
Copy full SHA for 2f944c9 - Browse repository at this point
Copy the full SHA 2f944c9View commit details -
WSGI spec requires the SERVER_SOFTWARE property containing the name and version. This change fix it and separate the version header from SERVER_SOFTWARE property. We expose the SERVER variable so custom installations can change it in one place without looking much when needed.
1Configuration menu - View commit details
-
Copy full SHA for dcfd0f0 - Browse repository at this point
Copy the full SHA dcfd0f0View commit details -
Configuration menu - View commit details
-
Copy full SHA for f74f926 - Browse repository at this point
Copy the full SHA f74f926View commit details
Commits on Jan 11, 2020
-
Merge pull request #2233 from benoitc/remove-version-in-server-header
remove version from the Server header
Configuration menu - View commit details
-
Copy full SHA for e4e20f2 - Browse repository at this point
Copy the full SHA e4e20f2View commit details
Commits on Jan 13, 2020
-
Added a set of pip requirements files to cover the examples in exampl…
…es/frameworks. Signed-off-by: Brett Randall <javabrett@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for c1bea68 - Browse repository at this point
Copy the full SHA c1bea68View commit details
Commits on Jan 17, 2020
-
Merge pull request #2238 from benoitc/examples-frameworks-requirements
Added pip requirements files for examples/frameworks
Configuration menu - View commit details
-
Copy full SHA for 77f33d6 - Browse repository at this point
Copy the full SHA 77f33d6View commit details
Commits on Jan 19, 2020
-
Updated setup Development Status metadata to 5 - Production/Stable (w…
…as 4 - Beta). Signed-off-by: Brett Randall <javabrett@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 9219da5 - Browse repository at this point
Copy the full SHA 9219da5View commit details
Commits on Jan 20, 2020
-
Merge pull request #2243 from benoitc/pep301-development-status
Updated Development Status 5 - Production/Stable
Configuration menu - View commit details
-
Copy full SHA for 73ae195 - Browse repository at this point
Copy the full SHA 73ae195View commit details
Commits on Jan 29, 2020
-
Remove dead code: find_library and _findWalk_ldpath
Kevin Michel committedJan 29, 2020 Configuration menu - View commit details
-
Copy full SHA for 287916a - Browse repository at this point
Copy the full SHA 287916aView commit details
Commits on Jan 30, 2020
-
Add milliseconds option to request_time in access_log (#2218)
Add milliseconds option to request_time in access_log
Configuration menu - View commit details
-
Copy full SHA for d307045 - Browse repository at this point
Copy the full SHA d307045View commit details -
Add documentation for the $PORT environment variable
Kevin Michel committedJan 30, 2020 Configuration menu - View commit details
-
Copy full SHA for c82996f - Browse repository at this point
Copy the full SHA c82996fView commit details
Commits on Jan 31, 2020
-
Document how environment variables impact configuration
Kevin Michel committedJan 31, 2020 Configuration menu - View commit details
-
Copy full SHA for a648f8a - Browse repository at this point
Copy the full SHA a648f8aView commit details -
Document the default name and path for the configuration file
Kevin Michel committedJan 31, 2020 Configuration menu - View commit details
-
Copy full SHA for 83b78e0 - Browse repository at this point
Copy the full SHA 83b78e0View commit details -
Replace and run the sitemap generator
This replaces the very old sitemap generator which was over 2kloc and only compatible with Python 2. According to the stored lastmod, the generator wasn't used since 2010. The minimal replacement script scan the static site for html files and uses git to deduce the last modification date of each page. The sitemap xmlns version was updated to the latest 0.9 from sitemaps.org . The index page was given a higher priority since the other pages are just redirects to the index with anchors. The output file is pretty printed to help with diffs. Static assets (css, images...) aren't listed in the sitemap anymore.
Kevin Michel committedJan 31, 2020 Configuration menu - View commit details
-
Copy full SHA for 93bcf5a - Browse repository at this point
Copy the full SHA 93bcf5aView commit details -
Merge pull request #2254 from kmichel-sereema/remove-dead-code-find-l…
…ibrary Remove dead code: find_library and _findWalk_ldpath
Configuration menu - View commit details
-
Copy full SHA for f09d609 - Browse repository at this point
Copy the full SHA f09d609View commit details -
Merge pull request #2253 from kmichel-sereema/2247-document-environme…
…nt-variables Document environment variables and $PORT
Configuration menu - View commit details
-
Copy full SHA for 7d8c92f - Browse repository at this point
Copy the full SHA 7d8c92fView commit details
Commits on Feb 2, 2020
-
Start reloader after loading the WSGI app.
Configuration menu - View commit details
-
Copy full SHA for 27d1e98 - Browse repository at this point
Copy the full SHA 27d1e98View commit details -
Validate directory before watching it with inotify
Fixes this exception that is raised when the inotify-based reloader is used in combination with the `--chdir` option: inotify.calls.InotifyError: Call failed (should not be -1): (-1) ERRNO=(0)
Configuration menu - View commit details
-
Copy full SHA for f39b065 - Browse repository at this point
Copy the full SHA f39b065View commit details
Commits on Feb 13, 2020
-
Set
max_accept
ongevent
worker-class to 1 when workers > 1We've had really terrible tail latencies with gevent and gunicorn under load. Inspecting our services with strace we see the following: ``` 23:11:01.651529 accept4(5, {sa_family=AF_UNIX}, [110->2], SOCK_CLOEXEC) = 223 <0.000015> ..{18 successful calls to accept4}... 23:11:01.652590 accept4(5, {sa_family=AF_UNIX}, [110->2], SOCK_CLOEXEC) = 249 <0.000010> 23:11:01.652647 accept4(5, 0x7ffcd46c09d0, [110], SOCK_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable) <0.000012> 23:11:01.657622 getsockname(5, {sa_family=AF_UNIX, sun_path="/run/gunicorn/gunicorn.sock"}, [110->30]) = 0 <0.000009> 23:11:01.657682 recvfrom(223, "XXX"..., 8192, 0, NULL, NULL) = 511 <0.000011> ..{16 calls to recvfrom}... 23:11:01.740726 recvfrom(243, "XXX"..., 8192, 0, NULL, NULL) = 511 <0.000012> 23:11:01.746074 getsockname(5, {sa_family=AF_UNIX, sun_path="/run/gunicorn/gunicorn.sock"}, [110->30]) = 0 <0.000013> 23:11:01.746153 recvfrom(246, "XXX"..., 8192, 0, NULL, NULL) = 511 <0.000014> 23:11:01.751540 getsockname(5, {sa_family=AF_UNIX, sun_path="/run/gunicorn/gunicorn.sock"}, [110->30]) = 0 <0.000010> 23:11:01.751599 recvfrom(249, "XXX"..., 8192, 0, NULL, NULL) = 511 <0.000013> ``` Notice we see a flury of 20 `accept4`s followed by 20 calls to to `recvfrom`. Each call to `recvfrom` happens 5ms after the previous, so the last `recvfrom` is called ~100ms after the call to `accept4` for that fd. gevent suggest setting `max_accept` to a lower value when there's multiple working processes on the same listening socket: https://github.com/gevent/gevent/blob/785b7b5546fcd0a184ea954f5d358539c530d95f/src/gevent/baseserver.py#L89-L102 gevent sets `max_accept` to `1` when `wsgi.multiprocess` is True: https://github.com/gevent/gevent/blob/9d27d269ed01a7e752966caa7a6f85d773780a1a/src/gevent/pywsgi.py#L1470-L1472 gunicorn does in fact set this when the number of workers is > 1: https://github.com/benoitc/gunicorn/blob/e4e20f273e95f505277a8dadf390bbdd162cfff4/gunicorn/http/wsgi.py#L73 and this gets passed to `gevent.pywsgi.WSGIServer`: https://github.com/benoitc/gunicorn/blob/e4e20f273e95f505277a8dadf390bbdd162cfff4/gunicorn/workers/ggevent.py#L67-L75 However, when `worker-class` is `gevent` we directly create a `gevent.server.StreamServer`: https://github.com/benoitc/gunicorn/blob/e4e20f273e95f505277a8dadf390bbdd162cfff4/gunicorn/workers/ggevent.py#L77-L78 Fixing this dropped the p50 response time on an especially probelmatic benchmark from 250ms to 115ms.
Roy Williams committedFeb 13, 2020 Configuration menu - View commit details
-
Copy full SHA for f145e90 - Browse repository at this point
Copy the full SHA f145e90View commit details
Commits on Feb 25, 2020
-
Do not raise and crash worker on ENOTCONN error
A couple of socket operations can fail with ENOTCONN error if the other side of the connection is not connected anymore. In that case, let's not crash the whole worker and give a chance to accept new connections. In my case, the operation that sometimes fails is a "getpeername()", which was introduced in b07532b (v19.8.0). Someone in #1913 metionned that v19.7.1 was working fine so it matches. Fixes #1913
Configuration menu - View commit details
-
Copy full SHA for f8b1e84 - Browse repository at this point
Copy the full SHA f8b1e84View commit details
Commits on Mar 1, 2020
-
Fix simple typo: convertable -> convertible
There is a small typo in examples/websocket/gevent_websocket.py, examples/websocket/websocket.py. Should read `convertible` rather than `convertable`.
Configuration menu - View commit details
-
Copy full SHA for f626830 - Browse repository at this point
Copy the full SHA f626830View commit details -
Merge pull request #2282 from timgates42/bugfix_typo_convertible
Fix simple typo: convertable -> convertible
Configuration menu - View commit details
-
Copy full SHA for 9157152 - Browse repository at this point
Copy the full SHA 9157152View commit details
Commits on Mar 3, 2020
-
Merge pull request #2266 from lyft/fix_max_accept_in_gevent
Set `max_accept` on `gevent` worker-class to 1 when workers > 1
Configuration menu - View commit details
-
Copy full SHA for 46b2cff - Browse repository at this point
Copy the full SHA 46b2cffView commit details
Commits on Mar 6, 2020
-
Merge pull request #2257 from kmichel-sereema/replace-sitemap-generator
Replace and run the sitemap generator
Configuration menu - View commit details
-
Copy full SHA for 8cb2bd2 - Browse repository at this point
Copy the full SHA 8cb2bd2View commit details
Commits on Mar 11, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 3bf9319 - Browse repository at this point
Copy the full SHA 3bf9319View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0896392 - Browse repository at this point
Copy the full SHA 0896392View commit details
Commits on Mar 16, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 57b8cdf - Browse repository at this point
Copy the full SHA 57b8cdfView commit details
Commits on Apr 10, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 7896057 - Browse repository at this point
Copy the full SHA 7896057View commit details
Commits on Apr 20, 2020
-
Merge pull request #2304 from closeio/fix-gevent-loop-exit
Exit async keepalive request loop when self.alive is False
Configuration menu - View commit details
-
Copy full SHA for bf14a0f - Browse repository at this point
Copy the full SHA bf14a0fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8c5613b - Browse repository at this point
Copy the full SHA 8c5613bView commit details
There are no files selected for viewing
This file was deleted.