fix: raise the supported Linux minimum to Ubuntu 24.04 - #261
Conversation
|
CI status, so the one red check is not left unexplained. All 16 required checks are green, including
|
|
Follow-up on the two advisory self-hosted lanes, now that both have finished.
So both red lanes fail on |
Every published Lemonade embeddable, v10.2.0 through v11.5.2, is linked against GLIBC_2.38 and GLIBCXX_3.4.32. Ubuntu 22.04 ships glibc 2.35, so the Lemonade engine cannot start there at all, yet README.md advertised Linux x86_64 as "full support ... both inference engines" and docs/wsl.md named 22.04 as a supported WSL base. Document a single minimum of Ubuntu 24.04 for Linux and WSL2, keeping the glibc number as the reason so the requirement stays meaningful on other distributions, and drop 22.04 from the WSL preflight's supported set so the automated check matches the prerequisite it enforces. Fixes #258 Signed-off-by: Roman Inflianskas <Roman.Inflianskas@amd.com>
ceb0d59 to
7b66483
Compare
|
Updated per maintainer decision: one flat minimum of Ubuntu 24.04, no per-engine matrix. The glibc number stays as the reason behind that line so it still means something on a non-Ubuntu distribution. Retitled Head is now CI on the new head: all 16 required checks green. Re-verified locally after the edit —
|
The problem
The docs promise a platform one of the two shipped engines cannot run on.
README.mdadvertised Linux (x86_64) as "Full support, including the livedashboard and both inference engines", and
docs/wsl.mdlisted"WSL2 with Ubuntu 24.04 or Ubuntu 22.04" as a prerequisite. Together those tell a
22.04 user — native or WSL2 — that both engines work.
They do not. Every published Lemonade embeddable, v10.2.0 through v11.5.2 (all 15
ubuntu-x64releases), is linked againstGLIBC_2.38andGLIBCXX_3.4.32. Ubuntu22.04 ships glibc 2.35 and
GLIBCXX_3.4.30, solemondis refused by the dynamicloader before it starts. There is no older release to pin back to and no supported
way to put glibc 2.38 on jammy. Full analysis in #258.
This is option 1 from that issue — narrow the documented matrix to match reality.
What changed
One flat minimum: Ubuntu 24.04 or newer, for Linux and WSL2 alike.
README.md: both the Linux and WSL2 rows now say "Ubuntu 24.04 or newer", and ashort paragraph below gives the glibc number behind that line — glibc 2.38 with
GLIBCXX_3.4.32— so the requirement still means something to a reader on RHEL,SLES, or Fedora who cannot map an Ubuntu version onto their own distribution.
docs/wsl.md: prerequisite 2 is now "Ubuntu 24.04 or newer", with the same reasonstated inline.
scripts/wsl_preflight.py:22.04dropped from the supported set, and theubuntucheck detail now names the minimum. Covered by a new--self-testcase(an otherwise-ready 22.04 host must fail the check), which fails against the old
set and passes against the new one, and runs in CI on both the Linux and Windows
lanes.
The minimum is deliberately stated as a single number rather than split per engine.
The Lemonade floor is the binding one; a per-engine matrix would be more precise but
harder to state and harder to test, and the simpler line is the one being supported.
The one edit a maintainer might want reverted
scripts/wsl_preflight.pyis a behaviour change, not documentation — hence thefix:title rather than
docs:. It is included because that script is the automated form ofthe
docs/wsl.mdprerequisite list and is invoked directly from it; leaving itreporting
ubuntu: okon a host Lemonade cannot run on would relocate theinconsistency rather than fix it. If you would rather keep this PR strictly to prose,
it is a self-contained three-line revert.
Also found, deliberately not changed
apps/rocm/src/main.rsdriver-install matrix (("ubuntu", "22.04" | "24.04"),codename_for_version). That mirrors AMD's own documented amdgpu-dkms installmatrix, which is a separate upstream support matrix;
rocm install driverstillproduces a correct plan on 22.04 and narrowing it would be a behaviour change beyond
this issue.
crates/rocm-core/src/diagnose.rssuggestingrocm/dev-ubuntu-22.04as aknown-good container image. A container brings its own userland, so the host glibc
claim does not apply; it is not a host-OS support statement.
This does not fix the user experience, only the promise
#258 also asks for a preflight error — "the lemonade engine requires glibc 2.38 or
newer; this host has 2.35" — instead of a raw loader message. That is deliberately
out of scope here, but worth stating plainly: no such preflight exists today. The
only glibc-aware code in the tree is a low-weight
"version `?glibc"keyword in therocm diagnoseclassifier, explicitly annotated "tangential"; there is no glibc checkanywhere in the Lemonade download or launch path. A 22.04 user who has not read these
docs still gets an opaque
version `GLIBC_2.38' not foundout of a subprocess. Thepreflight remains worth doing on its own, and it would be worth tracking separately
rather than letting it lapse when this merges.
Related
misleading uv advice rather than the real cause. Worth noting that vLLM's floor is a
different and lower one (glibc 2.34, plus CPython 3.12 that
rocmprovisionsitself), so the flat 24.04 minimum here is set by Lemonade and is marginally
stricter than vLLM alone would require. That tradeoff was taken deliberately in
favour of a support matrix that is simple to state and simple to test.
XDG_RUNTIME_DIRunset on headless hosts). It was masked by the glibc floor tracked here.
Verification
prek run --all-files --no-group local-tools(all passed: whitespace, EOF, yaml,merge-conflict, line endings, ruff check, ruff format, shellcheck, cargo fmt),
hawkeye check --config licenserc.toml(no missing headers),cargo fmt --all --check(clean),python3 scripts/wsl_preflight.py --self-test(ok; and confirmedthe new assertion still fails against the pre-change supported set).
No Gherkin scenario accompanies this: the
rocm/rocmdbinaries have no observablebehaviour change. The one behavioural edit is to a standalone helper script, whose
contract is covered by its own
--self-test, already run by CI.Searched
tests/e2e-cucumber/expectations.tomlfor stale xfails tied to this issue —the Lemonade rows there are all EAI-7423 (managed serve shutting down after ready),
unrelated to the glibc floor, so nothing to remove or narrow.
Fixes #258