-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
'nixops deploy' exits with 'Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS' #287
Comments
I have been running into this more frequently now. It feels very much non-deterministic. |
Is this with a very large network? |
Single machine. |
I was hitting this again and was able to work around it by setting the environment variable |
For future reference, Nix uses boehm-gc for garbage collection. [5:23:35 PM] Soenke Hahn: That has a limit for the amount of memory that is allowed to be allocated. |
Now also happen on hydra while doing |
Is someone working on this issue? (especially hydra) |
It should be fixed in recent master. On Fri, Sep 19, 2014 at 8:00 PM, Jascha Geerds notifications@github.com
www.debian.org - The Universal Operating System |
@lethalman: Great! So |
The problem with the GC has been solved, but now hydra is faster at On Fri, Sep 19, 2014 at 9:48 PM, Jascha Geerds notifications@github.com
www.debian.org - The Universal Operating System |
Hopefully this will be fixed :-) |
Been hitting this with 1.8pre3823_53b044c |
@edolstra Can you suggest anything we can do to profile/investigate this? This keeps hitting us. |
Try the latest Nix version. Commit 6bb4c0b should improve garbage collection quite a bit. Also, you could build |
@edolstra no help, unfortunately. Any other ideas here? |
@edolstra ping |
@edolstra ping? |
Sorry, no ideas. I haven't seen this message myself in a while. And I don't think I've ever seen it on a single-machine network, only on large Hydra jobset evaluations. |
@edolstra Any advice for investigating this ourselves? |
Not really, sorry. Have you tried doing what the message suggests (namely increase |
How about building a vm that reproduces the problem so we can all have a On Tue, Nov 25, 2014, 12:48 Eelco Dolstra notifications@github.com wrote:
|
I can reproduce this in current nixpkgs master, though it doesn't hit the limit.
|
@iElectric Right. But that's a pretty big evaluation (containing dozens of NixOS VMs), not a single machine case. |
The error is back on master: http://hydra.nixos.org/jobset/nixos/trunk-combined |
Related: NixOS/nixpkgs#3594 |
Back on master: http://hydra.nixos.org/jobset/nixos/trunk-combined#tabs-errors |
Otherwise we hit NixOS/nix#287 on Hydra
I'm got the same error with 100 nodes deployed via NixOps to EC2.
|
@volth see https://ac.els-cdn.com/S157106610900396X/1-s2.0-S157106610900396X-main.pdf?_tid=14162726-dce0-11e7-a77d-00000aacb361&acdnat=1512824242_7e9551614d8141a063f6582e02c10e8f If I understood @edolstra correctly, it's hard to implement GC on top of it. In Nixops it would probably pay off turning GC off and sharing memory. Short term solution is to get nixops to evaluate each machine separately, in multiprocess manner. Currently, NixOS evaluation grows linearly, meaning if one machine takes 100MB of memory to evaluate, once you have 100 machines it takes ~10GB of memory. |
There is a significant memory usage improvement in Nixpkgs |
@edolstra A thought: using eval time as a metric for cache eviction Would it be hard to keep track of how long it took to evaluate an expression, and use that to decide which expressions to memoize? So if you could somehow say "cache should be below 100MB", and then when the cache is bigger, you evict items sorted by increasing eval time? (possibly this is a trivial concept to you and not possible to implement, I just thought of it and wondered if that was a worthwhile approach to improving memory usage) |
I marked this as stale due to inactivity. → More info |
I closed this issue due to inactivity. → More info |
Closing this as it's very likely not relevant any more. Reopen if needed. |
After invoking
nixops deploy -j4 ...
I got this error message:The same command worked with
-j3
.The full command was:
The text was updated successfully, but these errors were encountered: