Skip to content

Commit

Permalink
[PR #7518/8bd42e74 backport][3.8] Fix GunicornWebWorker max_requests_…
Browse files Browse the repository at this point in the history
…jitter not work (#7519)

**This is a backport of PR #7518 as merged into master
(8bd42e7).**

<!-- Thank you for your contribution! -->

## What do these changes do?

<!-- Please give a short brief about these changes. -->

`GunicornWebWorker` use `self.cfg.max_requests` which is not add jitter,
from
https://github.com/benoitc/gunicorn/blob/master/gunicorn/workers/base.py#L56-L60,
the correct way is to use `sef.max_requests`

## Are there changes in behavior for the user?

<!-- Outline any notable behaviour for the end users. -->

After the PR is merged, the max-requests-jitter parameter of Gunicorn
can take effect.

## Related issue number

<!-- Are there any issues opened that will be resolved by merging this
change? -->

## Checklist

- [x] I think the code is well written
- [x] Unit tests for the changes exist
- [ ] Documentation reflects the changes
- [ ] If you provide code modification, please add yourself to
`CONTRIBUTORS.txt`
  * The format is &lt;Name&gt; &lt;Surname&gt;.
  * Please keep alphabetical order, the file is sorted by names.
- [x] Add a new news fragment into the `CHANGES` folder
  * name it `<issue_id>.<type>` for example (588.bugfix)
* if you don't have an `issue_id` change it to the pr id after creating
the pr
  * ensure type is one of the following:
    * `.feature`: Signifying a new feature.
    * `.bugfix`: Signifying a bug fix.
    * `.doc`: Signifying a documentation improvement.
    * `.removal`: Signifying a deprecation or removal of public API.
* `.misc`: A ticket has been closed, but it is not of interest to users.
* Make sure to use full sentences with correct case and punctuation, for
example: "Fix issue with non-ascii contents in doctest text files."

Co-authored-by: phyng <phyngk@gmail.com>
  • Loading branch information
patchback[bot] and phyng authored Aug 12, 2023
1 parent a0d234d commit 8c4ec62
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 3 deletions.
1 change: 1 addition & 0 deletions CHANGES/7518.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix GunicornWebWorker max_requests_jitter not work
2 changes: 1 addition & 1 deletion aiohttp/worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ async def _run(self) -> None:
self.notify()

cnt = server.requests_count
if self.cfg.max_requests and cnt > self.cfg.max_requests:
if self.max_requests and cnt > self.max_requests:
self.alive = False
self.log.info("Max requests, shutting down: %s", self)

Expand Down
4 changes: 2 additions & 2 deletions tests/test_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,8 +212,8 @@ async def test__run_ok_parent_changed(worker, loop, aiohttp_unused_port) -> None
worker.sockets = [sock]
worker.log = mock.Mock()
worker.loop = loop
worker.max_requests = 0
worker.cfg.access_log_format = ACCEPTABLE_LOG_FORMAT
worker.cfg.max_requests = 0
worker.cfg.is_ssl = False

await worker._run()
Expand All @@ -233,8 +233,8 @@ async def test__run_exc(worker, loop, aiohttp_unused_port) -> None:
worker.sockets = [sock]
worker.log = mock.Mock()
worker.loop = loop
worker.max_requests = 0
worker.cfg.access_log_format = ACCEPTABLE_LOG_FORMAT
worker.cfg.max_requests = 0
worker.cfg.is_ssl = False

def raiser():
Expand Down

0 comments on commit 8c4ec62

Please sign in to comment.