286 cycbuff problem continued

Russ Allbery rra at stanford.edu
Fri Sep 1 00:24:35 UTC 2000

Katsuhiro Kondou <kondou at nec.co.jp> writes:
> Pete Ashdown <pashdown at slack.xmission.com> wrote;

>> Doing a comparison between the strace output from 143 cycbuffs (which
>> works) and 286 cycbuffs (which doesn't), I was able to find a section
>> where it appears the shutdown starts on 286.  Why this is happening is
>> still beyond me.  The system has 64K file descriptors and 1024
>> per-process file descriptors.

> It seems your problem happens within perl library(not lib/perl.c but
> perl itself) which I don't understand.

Perl's trying to use stdio and you don't have any file descriptors lower
than 256 available.  This is a hard problem to solve; a partial workaround
is to make sure Perl initializes before the storage API, but you're still
hosed if your filter script wants to open any files itself.  INN uses a
reservation mechanism to handle this rather than calling dup2 on every
file descriptor for incoming connections (probably for speed reasons), but
Perl doesn't have access to INN's reserved pool of file descriptors.

Russ Allbery (rra at stanford.edu)             <http://www.eyrie.org/~eagle/>

More information about the inn-workers mailing list