John,

Looks like this is the case.

My machine has 80 cores, so I'm running in 80 threads typically. But
in this case I hit the memory limit, which typically doesn't happen.


The solution with meaningful assertion looks good to me.


Dmitry.



> Hello Dmitry,

> This is a new one for us!


> It appears that C-Reduce isn't testing for the case where fork fails, and
that must be what is happening for you.

> We can fix this oversight but the fact remains that if you are overloading
your machine to the point where a fork cannot succeed, then you should back
off significantly on the level of parallelism.

> John


On Tue, Apr 25, 2017 at 2:55 PM, Dmitry Babokin <[email protected]> wrote:

> When running creduce in 80 threads it crashes with the following message:
>
> Use of uninitialized value $pid in numeric ge (>=) at
> /usr/local/bin/creduce line 449.
> Use of uninitialized value $pid in numeric eq (==) at
> /usr/local/bin/creduce line 450.
>
> I use creduce top of the trunk from github - creduce 2.6.0 (b02c375).
> If I run with default 4 threads reduction succeeds, but for me runnning in
> 80 threads in more typical usage case, so would be nice to fix it.
>
> To run reproducer in the attachement, build latest gcc and latest clang,
> edit path in test.sh, and run:
> >creduce --n 80 test.sh func.cpp
>

Reply via email to