On Wed, Oct 02, 2019 at 08:13:59AM +0100, Steve Hay wrote:
> 
> I think the last line of the log extracts above is the clue, but I'm
> not going to be able to fix this myself. Line 119 in
> Apache2/Resource.pm is:
> 
>         my ($soft, $hard) = getrlimit $val;
> 
> So it looks like $val is blank. That comes from line 118:
> 
>         my $val = eval "&BSD::Resource::${res}()";
> 
> where $res is one of the keys of the $lim hashref, which comes from line 112:
> 
>     my $lim = get_rlimits();
> 
> Both getrlimit() and get_rlimits() are further BSD::Resource
> functions, which I see the error log also has further references to
> above (several uninitialized value warnings), but is not a thing that
> I have access to on Windows. Unless anyone else can help here then
> we'll have to let this one go for now. Hopefully it's not a
> showstopper.

Thanks for this diagnosis. Going through the resources here I do see
some which were undef and thus causing getrlimit to complain. Attached
is the trivial patch which now makes the test pass for me. It seemed
reasonable to simply omit undef resources but you might have a contrary
view.

For the record the undef resources I see are:

        RLIMIT_NICE
        RLIMIT_SIGPENDING
        RLIMIT_RTTIME
        RLIMIT_RTPRIO
        RLIMIT_MSGQUEUE

HTH,

Pete
-- 
Openstrike - improving business through open source
https://www.openstrike.co.uk/ or call 01722 770036
--- lib/Apache2/Resource.pm.orig        2019-09-26 18:10:15.000000000 +0100
+++ lib/Apache2/Resource.pm     2019-10-02 10:54:58.342756913 +0100
@@ -116,6 +116,7 @@
 
     for my $res (keys %$lim) {
         my $val = eval "&BSD::Resource::${res}()";
+        next unless defined $val;
         my ($soft, $hard) = getrlimit $val;
         (my $limit = $res) =~ s/^RLIMIT_//;
         ($soft, $hard) = ("$soft " . BM($soft), "$hard ". BM($hard))

Attachment: pgptA9yxo5gki.pgp
Description: PGP signature

Reply via email to