git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Jakub Narebski <jnareb@gmail.com>
Date
Aug 10, 2009, 14:57 UTC
Message-ID
<200908101657.13301.jnareb@gmail.com>
In-Reply-To
<88f4c4ee0908071056g5d9da83ft77d56ec2e5e84bac@mail.gmail.com>
On Fri, 7 Aug 2009, Mark Rada wrote:
Show 23 quoted lines
> On Fri, Aug 7, 2009 at 10:14 AM, Jakub Narebski<jnareb@gmail.com> wrote:
>> Mark A Rada <markrada26@gmail.com> 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.
[...]
Show 9 quoted lines
>> 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.
> 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?

Yes, it is true that this happens only when running gitweb as mod_perl legacy script using ModPerl::Registry. Otherwise it would be caught when running t/t9500-gitweb-standalone-no-errors.sh test.

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

Yes, it would not, because the code is run only when $projects_list is a directory to search for git repositories. If $projects_list is a file you wouldn't get this warning (and it might be slightly faster, if less flexible, as you would need to regenerate this file when adding or removing, or renaming, or changing owner of repositories).

-- 
Jakub Narebski
Poland
Previous: Mark Rada
Message 4 of 4 in “Gitweb giving me some warnings in Apache's error_log”
  1. Mark A RadaAug 7, 2009
  2. Jakub NarebskiAug 7, 2009
  3. Mark RadaAug 7, 2009
  4. Jakub NarebskiAug 10, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.