develooper Front page | perl.perl5.porters | Postings from August 2008

Fwd: [perl #42329] [PATCH] Carp::croak() replace user errormessage by own

From:
Bram
Date:
August 3, 2008 01:48
Subject:
Fwd: [perl #42329] [PATCH] Carp::croak() replace user errormessage by own
Message ID:
20080803104833.s13zeqnuw40kgwgc@horde.wizbit.be
Any comments on this patch?

Kind regards,

Bram

----- Forwarded message from perlbug-followup@perl.org -----
     Date: Wed, 30 Apr 2008 03:52:55 -0700
     From: Bram via RT <perlbug-followup@perl.org>
Reply-To: perlbug-followup@perl.org
  Subject: [perl #42329] [PATCH] Carp::croak() replace user error  
message by own
       To: "OtherRecipients of perl Ticket #42329"@
       Cc: perl5-porters@perl.org

>
> Looks like when script doing heavy I/O use all 1024 file descriptors,
> fail on opening next one and try to report this error using croak(),
> the Carp try to load (require) Carp::Heavy, and fail too (because
>    there no
> available file descriptors). This result in die() with message:
>     Can't locate Carp/Heavy.pm in @INC (@INC contains: ...) at
>     /usr/lib/perl5/5.8.8/Carp.pm line 255.
> instead of original user's message.
>
> I think Carp should avoid requesting more resources (memory, file
> descriptors, etc.) when user call carp/croak/etc. Either Carp::Heavy
> should be loaded together with Carp when script start or in case
> Carp::Heavy can't be loaded Carp should contain some failback code,
> which at least output user's message using usual warn/die.
>
> -----------------------------------------------------------------

Patch attached that:
a) shows the error from Carp::Heavy,
b) the supplied string,
c) a solution/work-around


#!/usr/bin/perl -l

use Carp;
my @t;
for (1 .. 1024) {
   open my $fh, "<", $0;
   push @t, $fh;
}
croak "abc";
__END__

Now shows:

Failed to load Carp::Heavy.  Consider adding use Carp::Heavy in your
code.
Carp-Error: Can't locate Carp/Heavy.pm:   Too many open files at lib/
Carp.pm line 44.
Args: abc



Kind regards,

Bram


----- End forwarded message -----





nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About