git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: Mark A Rada <markrada26@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: Gitweb giving me some warnings in Apache's error_log
Date: Fri, 07 Aug 2009 07:14:52 -0700 (PDT)	[thread overview]
Message-ID: <m3my6bpv6v.fsf@localhost.localdomain> (raw)
In-Reply-To: <533D6DDF-4DAC-4A86-A6F7-95B54B77E48B@gmail.com>

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.  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

  reply	other threads:[~2009-08-07 14:15 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-07 13:00 Gitweb giving me some warnings in Apache's error_log Mark A Rada
2009-08-07 14:14 ` Jakub Narebski [this message]
2009-08-07 17:56   ` Mark Rada
2009-08-10 14:57     ` Jakub Narebski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3my6bpv6v.fsf@localhost.localdomain \
    --to=jnareb@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=markrada26@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).