Repository navigation
fix(docker): build brotli 1.2.1 on bookworm - #2777
Merged
Merged
Conversation
dunglas
added a commit
that referenced
this pull request
Oct 26, 2026
#2778) `TestOutOfMemory_worker` kills the test binary in the Docker images (`Hard memory limit of 16777216 bytes exhausted`), on every variant. It also fails on main, but Docker tests only run on PRs labeled "CI: All jobs", and none ran since #2741 introduced the test. Worker mode holds four copies of the query string while populating the superglobals, so the 5 MiB query crosses the 16 MiB hard limit (twice `memory_limit`). The Tests workflow's PHP build stays just under it. 3 MiB still crosses `memory_limit`, which the test asserts, and stays under the hard limit: 4 MiB still exits, 2 MiB leaves little margin above `memory_limit`. Passed 20 times in a row in the Trixie builder image (plus 5 with `-race`), and with a local PHP 8.5 build. Unblocks #2777.
Bookworm ships libbrotli 1.0.9, but cbrotli v1.2.1 needs the 1.1 shared dictionary API, so every bookworm image failed to build. Build brotli 1.2.1 from source when the distro version is too old and ship it in the runner, which also gives PHP's curl the CVE-2026-111497 fix.
dunglas
force-pushed
the
fix/docker-bookworm-brotli
branch
from
October 26, 2026 10:49
3b29e2e to
a11a364
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every Bookworm image fails to build on main since d50aecb: cbrotli v1.2.1 uses the shared dictionary API from libbrotli 1.1, and Bookworm ships 1.0.9. No Debian suite provides a newer brotli for Bookworm.
/usr/local/libis added first to the loader path when the libraries are bundled. Without it, arm64, arm/v7 and i386 still load the distro 1.0.9, because the multiarch config sorts beforelibc.conf.+deb12u1backport.Checked on linux/arm64 (PHP 8.5): FrankenPHP and libcurl resolve libbrotli to
/usr/local/libon Bookworm, and a curl request to Caddy'sencode brdecodes correctly on both Bookworm and Trixie.