On Wed, 23 Dec 2015 03:05:41 -0800, [email protected] wrote:
> Following script throws error ( "Aborted (core dumped)" ) when $id ==
> 1007. This is because $p.err is really never closed. however, what I
> find intriguing is if I remove "my $output = $p.err.slurp-rest;" line
> it works fine. None the less, error message should be improved.
>
> use v6;
>
> my $id = 0;
> recursion();
>
> sub recursion()
> {
> say ++$id;
>
> my $p = run('false', :out, :err );
> my $output = $p.err.slurp-rest;
>
> try {
> $p.out.close;
> $p.err.close;
> CATCH { default {} }
> }
>
> if ($id < 1010) {
> recursion();
> }
> }
>
> $ perl6 --version
> This is Rakudo version 2015.11-708-g76c447b built on MoarVM version
> 2015.11-113-gbd56e2e implementing Perl 6.b.
To note: the crash is due to exhausting open file descriptors. Sticking this at
the start of the script makes it crash when $id is 807
my @fhs = ^200 .map: *.IO.open: :w;