# gitweb on kernel.org broken

5 messages from 2006-01-16 to 2006-01-16. Participants: H. Peter Anvin, Kay Sievers, Junio C Hamano, Greg KH.
Thread: https://gitlist.dev/t/3085

## H. Peter Anvin, 2006-01-16 18:44

Subject: gitweb on kernel.org broken
Message-ID: <43CBE993.9060701@zytor.com>
URL: https://gitlist.dev/e/43CBE993.9060701%40zytor.com

```
It seems that gitweb throws an error every time.  This means that 
nothing gets cached, and therefore the load on the kernel.org machines 
is driven into the high double digits:

[Mon Jan 16 10:42:01 2006] [error] [client 82.181.110.11] [Mon Jan 16 
10:42:01 2006] index.cgi: Use of uninitialized value in scalar 
assignment at /home/httpd/html/git/index.cgi line 411.
[Mon Jan 16 10:42:03 2006] [error] [client 82.181.110.11] fatal: Not a 
git repository: '/pub/scm/linux/hotplug/hotplug-ng.git'
[Mon Jan 16 10:42:03 2006] [error] [client 82.181.110.11] [Mon Jan 16 
10:42:03 2006] index.cgi: Use of uninitialized value in scalar chomp at 
/home/httpd/html/git/index.cgi line 406.
[Mon Jan 16 10:42:03 2006] [error] [client 82.181.110.11] [Mon Jan 16 
10:42:03 2006] index.cgi: Use of uninitialized value in pattern match 
(m//) at /home/httpd/html/git/index.cgi line 407.

This is all very bad...

	-hpa

```

## Kay Sievers, 2006-01-16 18:53

Subject: Re: gitweb on kernel.org broken
Message-ID: <20060116185342.GA14088@vrfy.org>
URL: https://gitlist.dev/e/20060116185342.GA14088%40vrfy.org
In-Reply-To: <43CBE993.9060701@zytor.com>

```
On Mon, Jan 16, 2006 at 10:44:35AM -0800, H. Peter Anvin wrote:
> It seems that gitweb throws an error every time.  This means that 
> nothing gets cached, and therefore the load on the kernel.org machines 
> is driven into the high double digits:
> 
> [Mon Jan 16 10:42:01 2006] [error] [client 82.181.110.11] [Mon Jan 16 
> 10:42:01 2006] index.cgi: Use of uninitialized value in scalar 
> assignment at /home/httpd/html/git/index.cgi line 411.
> [Mon Jan 16 10:42:03 2006] [error] [client 82.181.110.11] fatal: Not a 
> git repository: '/pub/scm/linux/hotplug/hotplug-ng.git'
> [Mon Jan 16 10:42:03 2006] [error] [client 82.181.110.11] [Mon Jan 16 
> 10:42:03 2006] index.cgi: Use of uninitialized value in scalar chomp at 
> /home/httpd/html/git/index.cgi line 406.
> [Mon Jan 16 10:42:03 2006] [error] [client 82.181.110.11] [Mon Jan 16 
> 10:42:03 2006] index.cgi: Use of uninitialized value in pattern match 
> (m//) at /home/httpd/html/git/index.cgi line 407.
> 
> This is all very bad...

Junio, seems your "textual symref HEAD" change is causing this?
  http://www.kernel.org/git/?p=git/gitweb.git;a=blob;hb=HEAD;f=gitweb.cgi#l399

Thanks,
Kay

```

## Kay Sievers, 2006-01-16 19:05

Subject: Re: gitweb on kernel.org broken
Message-ID: <20060116190556.GA14184@vrfy.org>
URL: https://gitlist.dev/e/20060116190556.GA14184%40vrfy.org
In-Reply-To: <20060116185342.GA14088@vrfy.org>

```
On Mon, Jan 16, 2006 at 07:53:42PM +0100, Kay Sievers wrote:
> On Mon, Jan 16, 2006 at 10:44:35AM -0800, H. Peter Anvin wrote:
> > It seems that gitweb throws an error every time.  This means that 
> > nothing gets cached, and therefore the load on the kernel.org machines 
> > is driven into the high double digits:
> > 
> > [Mon Jan 16 10:42:01 2006] [error] [client 82.181.110.11] [Mon Jan 16 
> > 10:42:01 2006] index.cgi: Use of uninitialized value in scalar 
> > assignment at /home/httpd/html/git/index.cgi line 411.
> > [Mon Jan 16 10:42:03 2006] [error] [client 82.181.110.11] fatal: Not a 
> > git repository: '/pub/scm/linux/hotplug/hotplug-ng.git'
> > [Mon Jan 16 10:42:03 2006] [error] [client 82.181.110.11] [Mon Jan 16 
> > 10:42:03 2006] index.cgi: Use of uninitialized value in scalar chomp at 
> > /home/httpd/html/git/index.cgi line 406.
> > [Mon Jan 16 10:42:03 2006] [error] [client 82.181.110.11] [Mon Jan 16 
> > 10:42:03 2006] index.cgi: Use of uninitialized value in pattern match 
> > (m//) at /home/httpd/html/git/index.cgi line 407.
> > 
> > This is all very bad...
> 
> Junio, seems your "textual symref HEAD" change is causing this?
>   http://www.kernel.org/git/?p=git/gitweb.git;a=blob;hb=HEAD;f=gitweb.cgi#l399

I've comment "strict" and "warnings" out, until it's fixed proper.

Kay

```

## Junio C Hamano, 2006-01-16 20:02

Subject: Re: gitweb on kernel.org broken
Message-ID: <7vwth0rlfm.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vwth0rlfm.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20060116190556.GA14184@vrfy.org>

```
Kay Sievers <kay.sievers@vrfy.org> writes:

>> Junio, seems your "textual symref HEAD" change is causing this?

Yeah, I assumed git_read_head() is called only on a repository
that was verified to be valid, and the subroutine did not check
the case where HEAD does not verify.  My bad.  The attached
patch should solve this.

The error log says hotplug-ng.git is triggering it.  I wonder what
is so special about that repository.  I hope it is transient
during mirroring that mirrored HEAD before objects, not a
corrupt repository at the mirroring source.

	... goes to kernel.org mirroring source machine ...

Ugh.  It is _not_ a valid git repository.  HEAD should be either a symlink
or a symref pointing somewhere under refs/heads/, but in that
directory, it instead is a regular file that contains an object
name.  There is nothing under refs/ either:

        $ ls -l /pub/scm/linux/hotplug/hotplug-ng.git/HEAD
        -rw-r--r--  2 gregkh users 41 May  6  2005 /pub/s...ug-ng.git/HEAD
	$ cat /pub/scm/linux/hotplug/hotplug-ng.git/HEAD
        b26bec9f620a969fe5238e8666ab698f197df488
	$ ls -l /pub/scm/linux/hotplug/hotplug-ng.git/refs
	total 0
	$ exit

Greg, could you let me know what is going on with this
repository, please?

First of all, I am wondering if this repository is still used
(maintained); a regular file HEAD that contains an object name
would have stopped working on Aug 27 2005 with this commit at the
latest, maybe even before that:

    diff-tree 5f5608b... (from 9740d28...
    Author: Linus Torvalds <torvalds@osdl.org>
    Date:   Sat Aug 27 13:54:42 2005 -0700

    [PATCH] Make .git directory validation code test HEAD

    Inspired by a report by Kalle Valo, this changes git-sh-setup-script and
    the "setup_git_directory()" function to test that $GIT_DIR/HEAD is a
    symlink, since a number of core git features depend on that these days.
    ...

The way I expected to see that part of the directory laid out in
a valid git repository would be:

	$ cd /pub/scm/linux/hotplug/hotplug-ng.git/
	$ mkdir -p refs/heads
	$ cat HEAD >refs/heads/master
	$ rm -f HEAD
	$ ln -s refs/heads/master HEAD

Anyhow, here is a gitweb patch to skip this.

---
diff --git a/gitweb.cgi b/gitweb.cgi
index 986d7da..f3853e7 100755
--- a/gitweb.cgi
+++ b/gitweb.cgi
@@ -404,9 +404,8 @@ sub git_read_head {
 	if (open my $fd, "-|", "$gitbin/git-rev-parse", "--verify", "HEAD") {
 		my $head = <$fd>;
 		close $fd;
-		chomp $head;
-		if ($head =~ m/^[0-9a-fA-F]{40}$/) {
-			$retval = $head;
+		if (defined $head && $head =~ /^([0-9a-fA-F]{40})$/) {
+			$retval = $1;
 		}
 	}
 	$ENV{'GIT_DIR'} = $oENV;

```

## Greg KH, 2006-01-16 20:28

Subject: Re: gitweb on kernel.org broken
Message-ID: <20060116202853.GA5676@kroah.com>
URL: https://gitlist.dev/e/20060116202853.GA5676%40kroah.com
In-Reply-To: <7vwth0rlfm.fsf@assigned-by-dhcp.cox.net>

```
On Mon, Jan 16, 2006 at 12:02:05PM -0800, Junio C Hamano wrote:
> Kay Sievers <kay.sievers@vrfy.org> writes:
> 
> >> Junio, seems your "textual symref HEAD" change is causing this?
> 
> Yeah, I assumed git_read_head() is called only on a repository
> that was verified to be valid, and the subroutine did not check
> the case where HEAD does not verify.  My bad.  The attached
> patch should solve this.
> 
> The error log says hotplug-ng.git is triggering it.  I wonder what
> is so special about that repository.  I hope it is transient
> during mirroring that mirrored HEAD before objects, not a
> corrupt repository at the mirroring source.
> 
> 	... goes to kernel.org mirroring source machine ...
> 
> Ugh.  It is _not_ a valid git repository.  HEAD should be either a symlink
> or a symref pointing somewhere under refs/heads/, but in that
> directory, it instead is a regular file that contains an object
> name.  There is nothing under refs/ either:
> 
>         $ ls -l /pub/scm/linux/hotplug/hotplug-ng.git/HEAD
>         -rw-r--r--  2 gregkh users 41 May  6  2005 /pub/s...ug-ng.git/HEAD
> 	$ cat /pub/scm/linux/hotplug/hotplug-ng.git/HEAD
>         b26bec9f620a969fe5238e8666ab698f197df488
> 	$ ls -l /pub/scm/linux/hotplug/hotplug-ng.git/refs
> 	total 0
> 	$ exit
> 
> Greg, could you let me know what is going on with this
> repository, please?
> 
> First of all, I am wondering if this repository is still used
> (maintained); a regular file HEAD that contains an object name
> would have stopped working on Aug 27 2005 with this commit at the
> latest, maybe even before that:

That's a very old git tree, and the development tree is pretty much dead
too.  I'll just go delete the thing.

Sorry about that.

greg k-h

```
