chore(deps): bump gunicorn from 26.0.0 to 26.2.0 - #6121
Conversation
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 26.0.0 to 26.2.0. - [Release notes](https://github.com/benoitc/gunicorn/releases) - [Commits](benoitc/gunicorn@26.0.0...26.2.0) --- updated-dependencies: - dependency-name: gunicorn dependency-version: 26.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
🟡 Waiting for changesLast updated: 2026-09-01 00:51 UTC |
rtibblesbot
left a comment
There was a problem hiding this comment.
PR #6121 — gunicorn 26.0.0 → 26.2.0, minor bump of a production dependency (requirements.in; run by Makefile:17 altprodserver and .github/workflows/deploytest.yml:208). CI passing, including the Browser smoke test, which starts gunicorn at the new version.
Breaking changes: none for HTTP/1.1. No settings removed or renamed; Studio uses gthread over HTTP/1.1 behind nginx with CLI flags only.
Security: HTTP/2-only. HTTP2Request bypassed the HTTP/1 header policy, letting an untrusted client set SCRIPT_NAME, forge HTTP_* environ entries, and pick wsgi.url_scheme via :scheme. Not reachable here — h2 is not in requirements.txt, so the http2 extra is not installed and http2_cleartext defaults to off. 26.1.0 also raised floors on tornado/h2/setuptools/pymdown-extensions, all in extras Studio does not install.
Peer/dependency changes: packaging moved from unconditional to extra == "gevent" / extra == "testing" — that is the requirements.txt:193 via-line removal. packaging==26.2 stays pinned via kombu, django-js-reverse and google-cloud-error-reporting, so nothing is uninstalled.
Behavioral changes worth knowing about:
- suggestion: 26.1.0 tightened request parsing — duplicate
Host/Content-Typenow raiseInvalidHeader(#3366), and a chunked body truncated after the last chunk line raisesChunkMissingTerminatorinstead of being treated as complete (#3382). Low risk behind nginx, but malformed uploads go from silently accepted to 400. Worth watching if anything posts chunked bodies straight to gunicorn. - Fixes that do apply: a dirty arbiter no longer returns a stale response to the wrong request after a worker timeout (#3626), and reparented non-worker children under PID 1 no longer log as failed workers or halt the server with exit 3/4 (#3220) — both relevant to the containerized deploy. SIGHUP now also reloads logger config.
- nitpick:
requirements.txt:101and:140drop the[grpc]extras marker fromgoogle-api-coreandgoogleapis-common-protos— unrelated to gunicorn, just a rendering difference from dependabot's uv. Functional no-op (grpcio,grpcio-status,protobufall still pinned), but if a localuv pip compile requirements.in -o requirements.txtre-adds[grpc], every future dependabot PR will keep flipping these two lines.
@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly
How was this generated?
Ran a dependency-update review pipeline over the version bump:
- Classified the bump by semver (patch / minor / major) and dependency type (production vs. development)
- Extracted the changelog and release notes across the version range
- Assessed compatibility with this project's usage and whether any code changes are required
- Treated CI as the primary safety net
- Scaled the review depth to the update's risk
- Chose the verdict from semver risk, changelog findings, and CI status
Bumps gunicorn from 26.0.0 to 26.2.0.
Release notes
Sourced from gunicorn's releases.
... (truncated)
Commits
36f2a3cgunicorn 26.2.0cbba350test: cover the h2c edge paths that had none9885411Merge pull request #3703 from cormier/fix-inconsistency-in-control-socket-docs86f0919Merge pull request #3704 from methane/doc-wsgi-h1c5853551Merge pull request #3712 from Rotzbua/patch-17bce87eMerge pull request #3700 from benoitc/fix/sponsor-logo-path972dfb0Merge pull request #3690 from melbinjp/docs/contributing-settings-path7b3f16bMerge pull request #3711 from benoitc/docs/http2-changelog5bf237chttp2: require gunicorn_h1c 0.6.9 and drop the upgrade body workaround7cf0338test: skip the fast-parser cases when gunicorn_h1c is absentDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)