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

[perl #23042] solaris open file descriptor recursive lib loading error.

Thread Previous
From:
Steve Peters via RT
Date:
November 15, 2008 03:26
Subject:
[perl #23042] solaris open file descriptor recursive lib loading error.
Message ID:
rt-3.6.HEAD-10965-1226696283-1569.23042-15-0@perl.org
On Sat Oct 11 06:35:36 2003, slaven@rezic.de wrote:
> "craig@malchiarts.com (via RT)" <perlbug-followup@perl.org> writes:
> 
> > # New Ticket Created by  craig@malchiarts.com
> > # Please include the string:  [perl #23042]
> > # in the subject line of all future correspondence about this issue.
> > # <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=23042 >
> >
> >
> >
> > This is a bug report for perl from craig@malchiarts.com,
> > generated with the help of perlbug 1.34 running under perl v5.8.0.
> >
> >
> > -----------------------------------------------------------------
> > [Please enter your report here]
> >
> > Solaris has a known issue with open file descriptors,
> 
> You can reproduce the problem on other systems, too. Just set the file
> descriptor limit to a low value (e.g. by using limits -n). Other
> systems like Linux and FreeBSD have much higher default limits than
> Solaris.
> 
> > but the error message
> > thrown when the limit has been reached by loading a lib is
> misleading.  Also,
> > recursive library calls (libA calls libB calls libC etc...) generate
> the same
> > error message.
> >
> > use program below for reference:
> >
> [...]
> >
> >
> > also note that adding a -m switch greater than the accepted amount
> will not
> > cause an error. (ie: -m 400) until something is attempted to be done
> with the
> > file handle.  (I don't know if that's an IO::File bug or no...).
> >
> > I suppose it's not such a big deal, but it's come up twice at
> work... first
> > time took some time to figure it out...
> >
> > (note:  below site configuration is *not* where I'm having the
> problem ;)
> >
> > -craig
> >
> >
> 
> In principle this could be solved by a little more diagnostics. e.g.:
> 
> --- bleedperl/pp_ctl.c	Wed Oct  8 14:34:00 2003
> +++ bleedperl2/pp_ctl.c	Sat Oct 11 15:26:59 2003
> @@ -3266,6 +3266,10 @@ PP(pp_require)
>  		}
>  		sv_catpvn(msg, ")", 1);
>  		SvREFCNT_dec(dirmsgsv);
> +		if (errno && errno != ENOENT) {
> +		    sv_catpvn(msg, ": ", 2);
> +		    sv_catpv(msg, Strerror(errno));
> +		}
>  		msgstr = SvPV_nolen(msg);
>  	    }
>  	    DIE(aTHX_ "Can't locate %s", msgstr);
> 

This problem was resolved as of change #25677.





Thread Previous


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