Re: Non-deterministic package IDs are really bad in 7.10

2015-05-19 Thread Mateusz Kowalczyk
On 05/19/2015 06:46 AM, Daniel Peebles wrote:
 Don't Nix builds all happen in a randomly generated temporary directory by
 default? Then you just copy to $out in installPhase. Perhaps stabilizing
 the build directory would help alleviate some of the immediate problems, if
 what Joachim is describing affects us too.

Oh, I was far too hasty in reading the bug on the Debian tracker. Yes, I
suppose this could be a problem for us though I'd like to see it first
before trying to work around it.

 On Mon, May 18, 2015 at 10:13 PM, Mateusz Kowalczyk fuuze...@fuuzetsu.co.uk
 wrote:
 
 On 05/14/2015 05:43 PM, Joachim Breitner wrote:
 Hi,

 Am Sonntag, den 10.05.2015, 19:39 +0100 schrieb Mateusz Kowalczyk:
 I'd like to bring some attention to ticket #4012 about non-determinism.
 As many of you may know, the nix package manager distributes binaries
 throughout its binary caches. The binaries are shared as long as the
 hash of some of their inputs matches: this means that we can end up with
 two of the same hashes of inputs but thanks to #4012 means that the
 actual contents can differ. You end up with machines with some packages
 built locally and some elsewhere and due to non-determinism, the GHC
 package IDs don't line up and everything is broken.

 is NixOS sensitive to changes in the build directory. Debian is, and
 since 7.8 the build path creeps into the interface files and affects the
 hash: https://bugs.debian.org/785282

 But you probably are not, otherwise you’d have complained when 7.8 was
 out, and not now :-)

 Greetings,
 Joachim


 Not a problem for nix, the paths are are calculated based on the
 derivation inputs. I don't want to go into details but if same
 expression goes in, same path comes out. If the path that comes out is
 different, you simply don't get to use it. More or less nix does
 ‘calculate the store path from this expression, check if it exists in
 binary caches and fetch it if it does, build if it does not’.

 So for us the store paths in the interface files would always be the
 same for the same inputs hence no problem there.

 --


-- 
Mateusz K.
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Non-deterministic package IDs are really bad in 7.10

2015-05-18 Thread Mateusz Kowalczyk
On 05/14/2015 05:43 PM, Joachim Breitner wrote:
 Hi,
 
 Am Sonntag, den 10.05.2015, 19:39 +0100 schrieb Mateusz Kowalczyk:
 I'd like to bring some attention to ticket #4012 about non-determinism.
 As many of you may know, the nix package manager distributes binaries
 throughout its binary caches. The binaries are shared as long as the
 hash of some of their inputs matches: this means that we can end up with
 two of the same hashes of inputs but thanks to #4012 means that the
 actual contents can differ. You end up with machines with some packages
 built locally and some elsewhere and due to non-determinism, the GHC
 package IDs don't line up and everything is broken.
 
 is NixOS sensitive to changes in the build directory. Debian is, and
 since 7.8 the build path creeps into the interface files and affects the
 hash: https://bugs.debian.org/785282
 
 But you probably are not, otherwise you’d have complained when 7.8 was
 out, and not now :-)
 
 Greetings,
 Joachim
 

Not a problem for nix, the paths are are calculated based on the
derivation inputs. I don't want to go into details but if same
expression goes in, same path comes out. If the path that comes out is
different, you simply don't get to use it. More or less nix does
‘calculate the store path from this expression, check if it exists in
binary caches and fetch it if it does, build if it does not’.

So for us the store paths in the interface files would always be the
same for the same inputs hence no problem there.

-- 
Mateusz K.
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Non-deterministic package IDs are really bad in 7.10

2015-05-14 Thread Malcolm Wallace
I'd like to add a +1 to getting this fixed.  It bites us at work, where exact 
binary reproducibility of builds is strongly desirable.

Regards,
Malcolm

On 14 May 2015, at 17:38, George Colpitts wrote:

 Currently the priority of #4012 is normal, shouldn't it be at least high? 
 Also the milestone is 7.12.1, should it be 7.10.2?
 
 On Sun, May 10, 2015 at 3:39 PM, Mateusz Kowalczyk fuuze...@fuuzetsu.co.uk 
 wrote:
 Hi,
 
 I'd like to bring some attention to ticket #4012 about non-determinism.
 As many of you may know, the nix package manager distributes binaries
 throughout its binary caches. The binaries are shared as long as the
 hash of some of their inputs matches: this means that we can end up with
 two of the same hashes of inputs but thanks to #4012 means that the
 actual contents can differ. You end up with machines with some packages
 built locally and some elsewhere and due to non-determinism, the GHC
 package IDs don't line up and everything is broken.
 
 The situation was pretty bad in 7.8.4 in presence of parallel builds so
 we switched those off. Joachim's
 a477e8118137b7483d0a7680c1fd337a007a023b helped a great deal there and
 we were hopeful for 7.10. Now that 7.10.1 is out and people have been
 using and testing it, the situation turns out to be really bad: daily we
 get multiple reports from people about their packages ending up broken
 and our only advice is to do what we did back in 7.8 days which is to
 purge GHC and rebuild everything locally or fetch everything from a
 machine that already built it all, as long as the two don't mix. This is
 not really acceptable.
 
 See comment 76 on #4012 for an example of a rather simple file you can
 compile right now with nothing extra but -O and get different interface
 hash.
 
 This e-mail is just to raise awareness that there is a serious problem.
 If people are thinking about cutting 7.10.2 or whatever, I would
 consider part of this ticket to be a blocker as it makes using GHC
 reliably while benefitting from binary caches pretty much impossible.
 
 Of course there's the ‘why don't you fix it yourself’ question. I
 certainly plan to but do not have time for a couple more weeks to do so.
 For all I know right now, the fix to comment 76 might be easy and
 someone looking for something to hack on might have the time to get to
 it before I do.
 
 Thanks
 --
 Mateusz K.
 ___
 ghc-devs mailing list
 ghc-devs@haskell.org
 http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
 
 ___
 ghc-devs mailing list
 ghc-devs@haskell.org
 http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Non-deterministic package IDs are really bad in 7.10

2015-05-14 Thread Joachim Breitner
Hi,

Am Sonntag, den 10.05.2015, 19:39 +0100 schrieb Mateusz Kowalczyk:
 I'd like to bring some attention to ticket #4012 about non-determinism.
 As many of you may know, the nix package manager distributes binaries
 throughout its binary caches. The binaries are shared as long as the
 hash of some of their inputs matches: this means that we can end up with
 two of the same hashes of inputs but thanks to #4012 means that the
 actual contents can differ. You end up with machines with some packages
 built locally and some elsewhere and due to non-determinism, the GHC
 package IDs don't line up and everything is broken.

is NixOS sensitive to changes in the build directory. Debian is, and
since 7.8 the build path creeps into the interface files and affects the
hash: https://bugs.debian.org/785282

But you probably are not, otherwise you’d have complained when 7.8 was
out, and not now :-)

Greetings,
Joachim


-- 
Joachim “nomeata” Breitner
  m...@joachim-breitner.de • http://www.joachim-breitner.de/
  Jabber: nome...@joachim-breitner.de  • GPG-Key: 0xF0FBF51F
  Debian Developer: nome...@debian.org


signature.asc
Description: This is a digitally signed message part
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Non-deterministic package IDs are really bad in 7.10

2015-05-14 Thread George Colpitts
Currently the priority of #4012 is normal, shouldn't it be at least high?
Also the milestone is 7.12.1, should it be 7.10.2?

On Sun, May 10, 2015 at 3:39 PM, Mateusz Kowalczyk fuuze...@fuuzetsu.co.uk
wrote:

 Hi,

 I'd like to bring some attention to ticket #4012 about non-determinism.
 As many of you may know, the nix package manager distributes binaries
 throughout its binary caches. The binaries are shared as long as the
 hash of some of their inputs matches: this means that we can end up with
 two of the same hashes of inputs but thanks to #4012 means that the
 actual contents can differ. You end up with machines with some packages
 built locally and some elsewhere and due to non-determinism, the GHC
 package IDs don't line up and everything is broken.

 The situation was pretty bad in 7.8.4 in presence of parallel builds so
 we switched those off. Joachim's
 a477e8118137b7483d0a7680c1fd337a007a023b helped a great deal there and
 we were hopeful for 7.10. Now that 7.10.1 is out and people have been
 using and testing it, the situation turns out to be really bad: daily we
 get multiple reports from people about their packages ending up broken
 and our only advice is to do what we did back in 7.8 days which is to
 purge GHC and rebuild everything locally or fetch everything from a
 machine that already built it all, as long as the two don't mix. This is
 not really acceptable.

 See comment 76 on #4012 for an example of a rather simple file you can
 compile right now with nothing extra but -O and get different interface
 hash.

 This e-mail is just to raise awareness that there is a serious problem.
 If people are thinking about cutting 7.10.2 or whatever, I would
 consider part of this ticket to be a blocker as it makes using GHC
 reliably while benefitting from binary caches pretty much impossible.

 Of course there's the ‘why don't you fix it yourself’ question. I
 certainly plan to but do not have time for a couple more weeks to do so.
 For all I know right now, the fix to comment 76 might be easy and
 someone looking for something to hack on might have the time to get to
 it before I do.

 Thanks
 --
 Mateusz K.
 ___
 ghc-devs mailing list
 ghc-devs@haskell.org
 http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Non-deterministic package IDs are really bad in 7.10

2015-05-10 Thread Mateusz Kowalczyk
Hi,

I'd like to bring some attention to ticket #4012 about non-determinism.
As many of you may know, the nix package manager distributes binaries
throughout its binary caches. The binaries are shared as long as the
hash of some of their inputs matches: this means that we can end up with
two of the same hashes of inputs but thanks to #4012 means that the
actual contents can differ. You end up with machines with some packages
built locally and some elsewhere and due to non-determinism, the GHC
package IDs don't line up and everything is broken.

The situation was pretty bad in 7.8.4 in presence of parallel builds so
we switched those off. Joachim's
a477e8118137b7483d0a7680c1fd337a007a023b helped a great deal there and
we were hopeful for 7.10. Now that 7.10.1 is out and people have been
using and testing it, the situation turns out to be really bad: daily we
get multiple reports from people about their packages ending up broken
and our only advice is to do what we did back in 7.8 days which is to
purge GHC and rebuild everything locally or fetch everything from a
machine that already built it all, as long as the two don't mix. This is
not really acceptable.

See comment 76 on #4012 for an example of a rather simple file you can
compile right now with nothing extra but -O and get different interface
hash.

This e-mail is just to raise awareness that there is a serious problem.
If people are thinking about cutting 7.10.2 or whatever, I would
consider part of this ticket to be a blocker as it makes using GHC
reliably while benefitting from binary caches pretty much impossible.

Of course there's the ‘why don't you fix it yourself’ question. I
certainly plan to but do not have time for a couple more weeks to do so.
For all I know right now, the fix to comment 76 might be easy and
someone looking for something to hack on might have the time to get to
it before I do.

Thanks
-- 
Mateusz K.
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs