-
-
Notifications
You must be signed in to change notification settings - Fork 15.2k
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
sbcl: Disable failing doCheck on aarch64-darwin #359214
Conversation
Why is it building 2.4.4? Is this on Hydra somewhere? |
@hraban Good catch. Indeed it seems 2.4.10 on master currently is successfully passing its tests on aarch64-darwin. Sorry for the false flag. |
I figured out where this comes from: nixos-24.05 has v 2.4.4. I could repro the bug locally:
This is new; I'm certain github:nixos/nixpkgs/nixos-24.05#sbcl used to work fine. Not sure what changed, and why it doesn't show up on nixpkgs-unstable! @Uthar do you perhaps recognize this at all? |
fwiw the upstream test is here https://github.com/sbcl/sbcl/blob/master/tests/run-program.test.sh#L51-L56 and it didn't change in quite a while |
Hey @hraban - Unfortunately I don't recognize this issue. I only remember sometimes SBCL breaking after certain MacOS updates, but that was on some clients machine. Though in that case the error would probably be more spectacular. Anyway, maybe we could search sbcl-devel. |
According to https://superuser.com/questions/82123/mac-whats-cfusertextencoding-for it's a environment variable that gets injected into processes by mac if a file |
Nasty! |
I ran a bisect and found a specific nixpkgs commit that introduced this bug in the --first-parent lineage of the 24.05 release branch:
Something in that merge introduces whatever it is that starts triggering this bug. Online resources talk about this behavior existing for >10y now so it's not some new apple feature. I'm very curious why this same bug doesn't rear its head in 24.11 or master, or in other software (I guess sbcl is the only one with a unit test that checks the calling env?) Very interesting bug! EDIT: if someone is interested in reproducing this , here's how you use git bisect:
nixpkgs uses a lot of merging so you want to start off with a --first-parent so it only tries commits that were actually in nixos-24.05, rather than intermediate commits from branches. |
Related: I'm still not completely clear on how exactly hydra releases work, but shouldn't this failing sbcl build somehow cause hydra to fail to build 24.05 entirely? Apparently nixos-24.05 has been failing to build sbcl since June 23, and somehow it's fine? How can we get alerted to this? This is a part of nixpkgs that is still kinda voodoo to me. |
I traced it to 57b36ea from #313773 . @toonn does this maybe ring a bell for you? The context here is that since that commit, a test in this compiler has started failing. It uses something like It doesn't seem to happen in nixpkgs-unstable, only on 24.05. I can't find much more about this envvar online, and whether or not all software is supposed to just accept that it could get this passed in its env, and ignore it. Is this opt-in? Is the test technically wrong on darwin, or...? I'm trying to figure out if this will at some point start failing in nixpkgs-unstable as well. |
Including @szlend who, I now see, was the actual author of the patch |
I can't say why exactly this happens but the Darwin stdenv has been redesigned in 24.11/unstable, removing these hooks entirely. So I don't see this coming back all of the sudden. |
sbcl is failing its test phase on aarch64-darwin.
It was already failing on x86_64-darwin it seems since it had this mention:
The tests fail on aarch64-darwin with:
Running
nix-shell -p 'sbcl.overrideAttrs { doCheck = false; }
on that aarch64 machine worked.Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)