launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #01677
[Merge] lp:~gary/launchpad/bug662912 into lp:launchpad/devel
Gary Poster has proposed merging lp:~gary/launchpad/bug662912 into lp:launchpad/devel.
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
This branch adds diagnostics to approach bug 662912. As noted in my comment #1 for that bug, I have a hypothesis that this is caused by a rejected hostname. This branch adds log messages for that case, plus all other cases that generate a 404 other than a simple missing file (_eb_getFileAlias in c/librarian/web.py).
It also puts the message about upstream librarians in the logfile so it is easier to see that the configuration is as expected.
It also creates a log file destination for development so developers can look at the locally-generated logs.
--
https://code.launchpad.net/~gary/launchpad/bug662912/+merge/39315
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~gary/launchpad/bug662912 into lp:launchpad/devel.
=== modified file '.bzrignore'
--- .bzrignore 2010-10-18 21:53:28 +0000
+++ .bzrignore 2010-10-25 20:54:51 +0000
@@ -80,3 +80,4 @@
*.pt.py
.project
.pydevproject
+librarian.log
=== modified file 'configs/development/launchpad-lazr.conf'
--- configs/development/launchpad-lazr.conf 2010-10-21 03:22:06 +0000
+++ configs/development/launchpad-lazr.conf 2010-10-25 20:54:51 +0000
@@ -175,6 +175,7 @@
[librarian_server]
root: /var/tmp/fatsam
launch: True
+logfile: librarian.log
[malone]
bugmail_error_from_address: noreply@xxxxxxxxxxxxxxxxxx
=== modified file 'daemons/librarian.tac'
--- daemons/librarian.tac 2010-10-20 18:43:29 +0000
+++ daemons/librarian.tac 2010-10-25 20:54:51 +0000
@@ -9,6 +9,8 @@
from meliae import scanner
from twisted.application import service, strports
+from twisted.internet import reactor
+from twisted.python import log
from twisted.web import server
from canonical.config import config, dbconfig
@@ -29,10 +31,13 @@
if config.librarian_server.upstream_host:
upstreamHost = config.librarian_server.upstream_host
upstreamPort = config.librarian_server.upstream_port
- print 'Using upstream librarian http://%s:%d' % (
- upstreamHost, upstreamPort)
+ reactor.callWhenRunning(
+ log.msg,
+ 'Using upstream librarian http://%s:%d' %
+ (upstreamHost, upstreamPort))
else:
upstreamHost = upstreamPort = None
+ reactor.callWhenRunning(log.msg, 'Not using upstream librarian')
application = service.Application('Librarian')
librarianService = service.IServiceCollection(application)
=== modified file 'lib/canonical/librarian/web.py'
--- lib/canonical/librarian/web.py 2010-09-24 15:40:49 +0000
+++ lib/canonical/librarian/web.py 2010-10-25 20:54:51 +0000
@@ -7,6 +7,7 @@
import time
from urlparse import urlparse
+from twisted.python import log
from twisted.web import resource, static, util, server, proxy
from twisted.internet.threads import deferToThread
@@ -52,6 +53,8 @@
try:
aliasID = int(name)
except ValueError:
+ log.msg(
+ "404: alias is not an int: %r" % (name,))
return fourOhFour
return LibraryFileAliasResource(self.storage, aliasID,
@@ -76,6 +79,8 @@
try:
self.aliasID = int(filename)
except ValueError:
+ log.msg(
+ "404 (old URL): alias is not an int: %r" % (name,))
return fourOhFour
filename = request.postpath[0]
@@ -95,6 +100,9 @@
netloc = netloc[:netloc.find(':')]
expected_hostname = 'i%d.restricted.%s' % (self.aliasID, netloc)
if expected_hostname != hostname:
+ log.msg(
+ '404: expected_hostname != hostname: %r != %r' %
+ (expected_hostname, hostname))
return fourOhFour
token = request.args.get('token', [None])[0]
@@ -128,6 +136,9 @@
# a crude form of access control (stuff we care about can have
# unguessable names effectively using the filename as a secret).
if dbfilename.encode('utf-8') != filename:
+ log.msg(
+ "404: dbfilename.encode('utf-8') != filename: %r != %r"
+ % (dbfilename.encode('utf-8'), filename))
return fourOhFour
if not restricted:
Follow ups