forked from lix-project/hydra
hydra-eval-jobs: Warn and resets maxHeapSize on bad values
This is because setting only the initial heap size to more than
the default value (or the configured value) will cause all initial evals
until maxHeapSize expands to the given value to abort.
The 1.1 multiplier comes from the the configured defaults on NixOS' hydra,
and from the previous multiplier used before
7876cf677c
.
This commit is contained in:
parent
423c0440ea
commit
dd188d3035
|
@ -234,6 +234,18 @@ int main(int argc, char * * argv)
|
||||||
initNix();
|
initNix();
|
||||||
initGC();
|
initGC();
|
||||||
|
|
||||||
|
/* Read the current heap size, which is the initial heap size. */
|
||||||
|
GC_prof_stats_s gc;
|
||||||
|
GC_get_prof_stats(&gc, sizeof(gc));
|
||||||
|
auto initialHeapSizeInt = gc.heapsize_full;
|
||||||
|
|
||||||
|
/* Then make sure the maximum heap size will be bigger than the initial heap size. */
|
||||||
|
if (initialHeapSizeInt > maxHeapSize) {
|
||||||
|
printInfo("warning: evaluator_initial_heap_size (%d) bigger than evaluator_max_heap_size (%d).", initialHeapSizeInt, maxHeapSize);
|
||||||
|
maxHeapSize = initialHeapSizeInt * 1.1;
|
||||||
|
printInfo(" evaluator_max_heap_size now set to %d.", maxHeapSize);
|
||||||
|
}
|
||||||
|
|
||||||
Path releaseExpr;
|
Path releaseExpr;
|
||||||
|
|
||||||
struct MyArgs : LegacyArgs, MixEvalArgs
|
struct MyArgs : LegacyArgs, MixEvalArgs
|
||||||
|
|
Loading…
Reference in a new issue