[0.14] bzrlib.errors.TransportError: Transport error: Server refuses to fullfil the request
Vincent Ladeuil
v.ladeuil+lp at free.fr
Sun Feb 11 14:49:59 GMT 2007
>>>>> "john" == John Arbash Meinel <john at arbash-meinel.com> writes:
john> Jari Aalto wrote:
>> I'm having a problem pulling from my own HTTP server. Deteils below.
>>
>> - Could the error message be a little more verbose. Like printing
>> possible reasons for and suggest actions to check.
>>
>> In the server size all files and firs are drwxr-xr-x, I've also
>> restarted apache2 but this doesn't affect the error. Perhaps this is
>> an error in my side, just can't read it from the error.
>>
>> Jari
>>
john> I agree it should describe what is going on. You are getting a 403 error.
john> Try the attached patch. I think I also found a bug in the 404 handler
john> (it was directly using HTTPError, but I couldn't find that imported
john> anywhere. Which surprises me a lot, because we do quite a few NoSuchFile
john> tests.)
You found a bug, but it's dead code, see below.
john> John
john> =:->
john> === modified file 'bzrlib/transport/http/_urllib2_wrappers.py'
john> --- bzrlib/transport/http/_urllib2_wrappers.py 2006-12-13 15:08:39 +0000
john> +++ bzrlib/transport/http/_urllib2_wrappers.py 2007-02-11 13:43:48 +0000
john> @@ -761,16 +761,19 @@
john> def http_error_default(self, req, fp, code, msg, hdrs):
john> if code == 404:
john> raise errors.NoSuchFile(req.get_selector(),
john> - extra=HTTPError(req.get_full_url(),
john> - code, msg,
john> - hdrs, fp))
john> + extra=urllib2.HTTPError(req.get_full_url(),
john> + code, msg,
john> + hdrs, fp))
This is dead code, the 404 code is filtered just above in
HTTPErrorProcessor.http_response (it's a bit hard to read because
it uses the call chains from urllib2: the self.parent.error will
end calling HTTPDefaultErrorHandler.http_error_default.
404 is not considered an error for urllib because we want to be
able to translate it into NoSuchFile, but not here.
So it can be safely deleted.
john> elif code == 403:
john> - raise errors.TransportError('Server refuses to fullfil the request')
john> + raise errors.TransportError(
john> + 'Server refuses to fullfil the request for url %s'
john> + ' (code: %s, msg: %s, headers: %s)'
john> + % (req.get_full_url(), code, msg, hdrs))
john> elif code == 416:
john> # We don't know which, but one of the ranges we
john> # specified was wrong. So we raise with 0 for a lack
john> # of a better magic value.
john> - raise errors.InvalidRange(req.get_full_url(),0)
john> + raise errors.InvalidRange(req.get_full_url(), 0)
john> else:
john> # TODO: A test is needed to exercise that code path
john> raise errors.InvalidHttpResponse(req.get_full_url(),
+1 to merge that.
Vincent
More information about the bazaar
mailing list