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

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/Linux
This 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
Previous: Jonathan NiederNext: Jakub Narebski
Message 2 of 16 in “gitweb: cloud tags feature produces malformed XML for errors”
  1. Jonathan NiederMar 1, 2011
  2. Jakub NarebskiMar 2, 2011
  3. Jakub NarebskiMar 2, 2011
  4. Uwe Kleine-KönigMar 2, 2011
  5. J.H.Mar 2, 2011
  6. Jakub NarebskiMar 2, 2011
  7. Uwe Kleine-KönigMar 2, 2011
  8. Jakub NarebskiMar 3, 2011
  9. Uwe Kleine-KönigMar 3, 2011
  10. gitweb: Change the way "content tags" ('ctags') are handledJakub Narebski, Mar 7, 2011
  11. 2/1 gitweb: Mark matched 'ctag' / contents tag (?by_tag=foo)Jakub Narebski, Mar 9, 2011
  12. Petr BaudisMar 9, 2011
  13. gitweb: do misparse nonnumeric content tag files that contain a digitJonathan Nieder, Jun 9, 2011
  14. Jonathan NiederJun 9, 2011
  15. Petr BaudisMar 3, 2011
  16. Jakub NarebskiMar 3, 2011

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.