Re: gitweb: cloud tags feature produces malformed XML for errors
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Mar 2, 2011, 00:05 UTC
- Message-ID
- <201103020105.04440.jnareb@gmail.com>
- In-Reply-To
- <20110301222141.GB7918@elie>
On Tue, 1 Mar 2011, Jonathan Nieder wrote:
> Uwe Kleine-König wrote [1]: > [1] http://bugs.debian.org/616005
Show 9 quoted lines
> > I experiment with $feature{'ctags'}. After installing
> > libhtml-tagcloud-perl (0.34-1) and adding
> >
> > $feature{'ctags'}{'default'} = [1];
> >
> > to gitweb.conf and doing
> >
> > mkdir ctags
> > echo Linux > ctags/LinuxThis is invalid usage. See below for details.
Show 24 quoted lines
> >
> > in the only repository served by gitweb makes iceweasel barf on the
> > output (see attachment).
>
> With chromium I get:
>
> This page contains the following errors:
>
> error on line 26 at column 6: XML declaration allowed only at the start of the document
> Below is a rendering of the page up to the first error.
>
> First, we hit
>
> if ($show_ctags) {
> my %ctags;
> foreach my $p (@projects) {
> foreach my $ct (keys %{$p->{'ctags'}}) {
> $ctags{$ct} += $p->{'ctags'}->{$ct};
>
> which produces a warning warning in error.log:
>
> index.cgi: Argument "Linux" isn't numeric in addition (+) at /usr/share/gitweb/index.cgi line 4819.
>
> in error.log.Well, blame Pasky for not describing 'ctags' in more detail. Value of tag is its weight, so instead of
mkdir ctags echo Linux > ctags/Linux
one should use
mkdir ctags echo 1 > ctags/Linux
Admittedly gitweb should be more defensive about invalid input...
Show 20 quoted lines
> Then we hit git_show_project_tagcloud, which dies in
> "$cloud->html_and_css($count);" with
>
> HTML::TagCloud..
> index.cgi: Can't take log of 0 at /usr/share/perl5/HTML/TagCloud.pm line 67.
>
> For some reason, the result is an _embedded_ error page:
>
> <form method="get" action="/gitweb/" enctype="application/x-www-form-urlencoded">
> <p class="projsearch">Search:
> <input type="text" name="s" />
> </p>
> </form>
> Content-type: {a content type which shall not be named}
>
> <?xml version="1.0" encoding="utf-8"?>
> [...]
> 500 - Internal Server Error
>
> So I suspect there are two bugs here.This I think is caused by the fact that error ("die") occurs after gitweb have send some output to web browser already. That would be harder to fix.
-- Jakub Narebski Poland