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
Inconistent Haskell Binaries #7792
Comments
These packages have become inconsistent on your machine. (Cc: @Fuuzetsu might be interested.) The only way to recover from this issue is to garbage collect all GHC 7.10.x related packages and to re-build / download everything from scratch. |
Pretty sure it's specialisation bullshit but if you want to to publish the contents of some of the store paths here compared to the storepaths on Hydra or whatever then it might be helpful. If not, that's OK. Honestly this bug is notorious as hell. I want to fix it in GHC but have no time for a while more. It sucks. I'll try to raise the issue on ghc-dev and see if anyone wants to step up. |
I had this same problem yesterday, except text was broken because of a bad link to bytestring. I deleted all my references to GHC and built again, but got the exact same problem once again. I deleted the references and rebuilt with I have a feeling something on Hydra is weird. But yeah, the real solution is to fix GHC: |
Sent a little bump to the mailing list http://mail.haskell.org/pipermail/ghc-devs/2015-May/008992.html |
So what are my actions now? |
Wipe out GHC and try again, hoping everything comes from a binary cache or is otherwise consistent. If you want to be sure it works then run with |
How can I get what depends on ghc-7.10? Because I get error that it is alive. |
gives you the list of packages that depend on GHC. Basically, you have to remove all Haskell packages from all profiles in |
@peti Thank you! |
@puffnfresh, recommending that our users switch back to GHC 7.8.4 seems a bit premature. I don't think it's fair to say that the non-determinism bug has gotten worse in 7.10.x based on the evidence we have so far. GHC 7.10.x clearly didn't eliminate the problem -- as we had hoped --, but that's not the same thing as saying that it got worse. |
@peti , it did get worse. Previously the main source of non-determinism was that some names in the interface file could come out different in presence of parallel builds. At that point we had a workaround which was switching parallel builds off. The issue in 7.10.1 is a different problem. Whether it existed in 7.8.x and whether it still exists in GHC HEAD I don't know, but vanilla 7.10.1 is worse non-determinism wise because we don't even have a workaround this time. |
@Fuuzetsu, we've had inconsistent 7.8.x packages without parallel builds too. Parallel building greatly increased the chances of hitting the non-determinism bug, but even without it the chances of hitting that bug were greater than zero. In some cases, 7.8.x hits the non-determinism bug with a chance of almost 100%! For example, revert d42d643 and try compiling
No amount of tweaking helped; it seems flat out impossible to get a consistent build of From my point of view, GHC 7.10.x has been more stable than 7.8.x so far. |
Ah, I did not know about this. I don't mean to say that 7.8.4 had no issues when parallel builds weren't enabled but I did not know about any actual cases.
Sure thing though I wonder if that's because you build the Haskell package set yourself as nixpkgs moves so you end up with consistent env that you then use. Most people are probably going to end up mixing official hydra, local builds and maybe your Hydra too. If you say we should stick with 7.10.1 for now then I trust your decision. Ideally someone steps up to help on Trac 4012 and we have more reliable 7.10.2 of course. SPJ seems to have some idea of what may be going on here so if someone wants to attempt this, just leave a comment on that Trac ticket. I may have time myself in about a week and already suggested that the ticket should probably be a blocker for 7.10.2. |
Yes, it's true that mixing packages from different Hydra servers is more likely to cause trouble. It's a good idea to download Haskell packages from one source only to reduce the likelihood of hitting this bug. As of now, the official |
Instructions how to recover from this issue are now available at https://nixos.org/wiki/Haskell#Recovering_from_GHC.27s_non-deterministic_library_ID_bug. Please feel free to improve the Wiki page! I'll close this ticket, because it's not anything actionable for us, i.e. we can't do anything in Nix about this issue other than document it and help our users avoid it and/or recover from it -- what we've done. |
The link for recovering from the determinism bug has moved to: http://nixos.org/nixpkgs/manual/#how-to-recover-from-ghcs-infamous-non-deterministic-library-id-bug |
According to https://ghc.haskell.org/trac/ghc/ticket/4012#comment:232 GHC 8.0.2 will fix these issues. Could we spin up haskell rebuild with ghc HEAD to assure this works? |
I believe I get the same symptoms, but given that this is in the context of an entirely new GHC definition (#34023), I'm not really sure the bug is the same. But, for the record, the symptoms are:
The interesting part, though, is that
I.e. the |
Using the latest nixos-unstable (
15.05pre61966.75ebc3c (Dingo)
)Trying
nix-env -iA nixos.pkgs.haskellngPackages.idris
Getting
cc @peti
The text was updated successfully, but these errors were encountered: