git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Eli Barzilay <eli@barzilay.org>
To: git@vger.kernel.org
Subject: Re: gitweb problem?
Date: Mon, 01 Mar 2010 06:51:58 -0500	[thread overview]
Message-ID: <m3zl2suun5.fsf@winooski.ccs.neu.edu> (raw)
In-Reply-To: m3bpf8mj5k.fsf@localhost.localdomain

Jakub Narebski <jnareb@gmail.com> writes:

> Eli Barzilay <eli@barzilay.org> writes:
>
>> Whenever I view the toplevel gitweb page (running as a cgi script
>> under apache), but not when in a specific repo, I get this in my error
>> log:
>> 
>> gitweb.cgi: Use of uninitialized value $git_dir in concatenation (.) or string at /home/git/gitweb/gitweb.cgi line 2065.
>> fatal: error processing config file(s)
>> gitweb.cgi: Use of uninitialized value $git_dir in concatenation (.) or string at /home/git/gitweb/gitweb.cgi line 2221.
>> gitweb.cgi: Use of uninitialized value $git_dir in concatenation (.) or string at /home/git/gitweb/gitweb.cgi line 2218.
>> 
>> (taken verbatim from the apache error log, removed uninteresting line
>> prefixes.)
>
> In the future (or if my diagnosis would turn out to be incorrect)
> could you please show which lines are those (in *your* gitweb.cgi),
> or at least provide gitweb version?  Changes to gitweb can render
> such line numbers invalid.

Sorry, I should have mentioned that this is from 1.7.0 -- my file is
not modified, and built with no changes to the defaults except for
prefix=/usr/local.  In any case, the script -- with the test that I
added -- is at http://tmp.barzilay.org/x1 .


>> I'm using the pathinfo option, so perhaps there is a problem with
>> that setup?
>
> In the future (or if my diagnosis would turn out to be incorrect)
> could you please include relevant parts of $GITWEB_CONFIG (by
> default it is gitweb_config.perl), at least which features you have
> enabled, and how they are configured?

http://tmp.barzilay.org/x2 (but see below).


>> Looking at the source, the last two line numbers are in
>> `git_get_project_config' -- so my guess is that the code is trying to
>> get the options from the repository config file even when showing the
>> toplevel page.  Based on this, and also guessing that $git_dir is
>> unset when viewing the toplevel page, I added
>> 
>> 	return unless (defined $git_dir);
>> 
>> to the top (of the `git_get_project_config' function), and I get no
>> warnings and everything works as it should.
>> 
>> (Disclaimer: I can barely read perl, and I'm a git newbie, so all of
>> this can be due to some other stupid mistake.)
>
> That looks like lack of hardening against pilot error.  The
> git_get_project_config should never be run when $git_dir is not set,
> as it is meant to access *project* config.
>
> But at the top of git_project_list_body subroutine, which is
> responsible for generating toplevel page with list of projects, we
> have:
> 	my $check_forks = gitweb_check_feature('forks');
> and a bit later
> 	my $show_ctags = gitweb_check_feature('ctags');
>
> Now both of those features are marked as not supporting project specific
> override.  It might be that you by accident set $feature{XXX}{'override'}
> to true... but I might be mistaken.

No, that's not it.  I've tracked all calls to
`git_get_project_config', and the two offending calls are the ones in
`feature_snapshot' and `feature_avatar'.  I then verified that
commenting out these two lines in my config

  $feature{'snapshot'}{'override'} = 1;
  $feature{'avatar'}{'override'} = 1;

avoids the calls -- and the comments indicate that it should be fine
to do that.

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

  reply	other threads:[~2010-03-01 11:52 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-01  6:54 gitweb problem? Eli Barzilay
2010-03-01 10:24 ` Jakub Narebski
2010-03-01 11:51   ` Eli Barzilay [this message]
2010-03-01 13:40     ` Jakub Narebski
2010-03-01 21:51       ` [PATCH] gitweb: Fix project-specific feature override behavior Jakub Narebski
2010-03-02  4:40       ` gitweb problem? Eli Barzilay

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=m3zl2suun5.fsf@winooski.ccs.neu.edu \
    --to=eli@barzilay.org \
    --cc=git@vger.kernel.org \
    /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).