New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revert "meson: 0.46.1 -> 0.47.0" #44040
Conversation
With meson 0.47.0 (or 0.47.1, or git) things are very wrong re:rpath handling resulting in at best missing libs but even corrupt binaries :(. When we run patchelf it masks the problem by removing obviously busted paths. Which is probably why this wasn't noticed immediately. Unfortunately the binary already has a long series of paths scribbled in a space intended for a much smaller string; in my testing it was something like lengths were 67 with 300+ written to it. I think we've reported the relevant issues upstream, but unfortunately it appears our patches are what introduces the overwrite/corruption (by no longer being correct in what they assume) This doesn't look so bad to fix but it's not something I can spend more time on at the moment. -- Interestingly the overwritten string data (because it is scribbled past the bounds) remains in the binary and is why we're suddenly seeing unexpected references in various builds -- notably this is is the reason we're seeing the "extra-utils" breakage that entirely crippled NixOS on master (and probably on staging before?). Fixes NixOS#43650. This reverts commit 305ac4d.
As mentioned mass failures on Hydra: https://hydra.nixos.org/eval/1470463#tabs-still-fail So honestly if this fixes even just this test it's an improvement ;) @GrahamcOfBorg test systemd |
Success on x86_64-linux (full log) Attempted: tests.systemd Partial log (click to expand)
|
Success on aarch64-linux (full log) Attempted: tests.systemd Partial log (click to expand)
|
I'd like to merge staging with this as well. |
Sounds good to me--just wanted someone to confirm before merging since it'll cause all the rebuilds :P. Well a lot anyway :). |
Oh there is already a big rebuild on staging, so I'll merge there and reeval. |
Pushed to |
But the fix is required on master too, or do you will merge staging-next into master also? |
I think it's best to do so, given that staging-next has (more or less) rebuilt and except for a few hiccups on the Python side that @FRidh seems to be looking into, it looks good. |
@dtzWill What package breaks for you with meson 0.47? |
All NixOS test VMs, blocked things for quite some time and was a beast to track down. See description at top, the breakage is subtle (although corruption of binarirs is not small issue!!) as things appear to work at first. I'll check later (soon as I can) but most glaring symptom of our incorrectly scribbling into produced binaries is that pretty much 100% NixOS VM tests failed and probably NixOS failed to boot although I don't know that I bothered checking the latter. I think the self-check at end of producing the extras for stage 1 is where it crashed. |
With meson 0.47.0 (or 0.47.1, or git)
things are very wrong re:rpath handling
resulting in at best missing libs but
even corrupt binaries :(.
When we run patchelf it masks the problem
by removing obviously busted paths.
Which is probably why this wasn't noticed immediately.
Unfortunately the binary already
has a long series of paths scribbled
in a space intended for a much smaller string;
in my testing it was something like
lengths were 67 with 300+ written to it.
I think we've reported the relevant issues upstream,
but unfortunately it appears our patches
are what introduces the overwrite/corruption
(by no longer being correct in what they assume)
This doesn't look so bad to fix but it's
not something I can spend more time on
at the moment.
--
Interestingly the overwritten string data
(because it is scribbled past the bounds)
remains in the binary and is why we're suddenly
seeing unexpected references in various builds
-- notably this is is the reason we're
seeing the "extra-utils" breakage
that entirely crippled NixOS on master
(and probably on staging before?).
Fixes #43650.
This reverts commit 305ac4d.
cc #43546
sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)nix path-info -S
before and after)