Re: Gitweb giving me some warnings in Apache's error_log

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Let me double check my understanding.

The warnings will not occur if Gitweb is run as a regular CGI script
because then it won't be nested inside a call from
ModPerl::Registry?

Will it also not complain if I provided my own $project_list in the first place?

Also, I looked at some examples from the second and third page of an article
on the subject, http://www.perl.com/pub/a/2002/05/07/mod_perl.html?
and it looks "fixable". Is there a particular reason why any of them are not
desirable?

Note: I haven't tried anything yet, just wondering if you know off hand

--
Mark A Rada (ferrous26)
marada@xxxxxxxxxxxx



On Fri, Aug 7, 2009 at 10:14 AM, Jakub Narebski<jnareb@xxxxxxxxx> wrote:
> Mark A Rada <markrada26@xxxxxxxxx> writes:
>
>> It doesn't seem to cause any other problems, but I don't know if it is
>> significant or not.
>>
>> [Fri Aug  7 08:51:13 2009] gitweb.cgi: Variable "$project_maxdepth"
>> may be unavailable at /var/www/private/gitweb/cgi-bin/gitweb.cgi line
>> 2296.
>> [Fri Aug  7 08:51:13 2009] gitweb.cgi: Variable "$projectroot" may be
>> unavailable at /var/www/private/gitweb/cgi-bin/gitweb.cgi line 2304.
>>
>>
>> Apache 2.2.12/ mod_perl 2.04/ perl 5.8.8
>
> From perldiag(1) manpage:
>
>  Variable "%s" may be unavailable
>
>    (W closure) An inner (nested) anonymous subroutine is inside a
>    named subroutine, and outside that is another subroutine; and the
>    anonymous (innermost) subroutine is referencing a lexical variable
>    defined in the outermost subroutine.  For example:
>
>      sub outermost { my $a; sub middle { sub { $a } } }
>
>    If the anonymous subroutine is called or referenced (directly or
>    indirectly) from the outermost subroutine, it will share the
>    variable as you would expect.  But if the anonymous subroutine is
>    called or referenced when the outermost subroutine is not active,
>    it will see the value of the shared variable as it was before and
>    during the *first* call to the outermost subroutine, which is
>    probably not what you want.
>
>    In these circumstances, it is usually best to make the middle
>    subroutine anonymous, using the "sub {}" syntax.  Perl has
>    specific support for shared variables in nested anonymous
>    subroutines; a named subroutine in between interferes with this
>    feature.
>
> The warning is about 'wanted' anonymous subroutine passed to
> File::Find::find.  The "middle" subroutine is git_get_projects_list,
> and the "outermost" is mod_perl / ModPerl::Registry request loop.
>
> We can't make git_get_projects_list anonymous, but anonymous
> subroutine is not called or referenced outside git_get_projects_list,
> nor it is called or referenced outside mod_perl request/event loop.
>
> This warning is harmless... but I do not know how to silence it.
>
> --
> Jakub Narebski
> Poland
> ShadeHawk on #git
>
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]