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 >
