bzr-webdav and bzr-svn collide over transport

Bug #274840 reported by HPO
2
Affects Status Importance Assigned to Milestone
Bazaar
Invalid
Undecided
Unassigned
Bazaar Subversion Plugin
Fix Released
Low
Jelmer Vernooij
Bazaar WebDAV plugin
Invalid
Undecided
Unassigned

Bug Description

After updating to bzr 1.7, I notice bzr-webdav and bzr-svn seem to collide over the https+webdav transport. A pull - that worked fine with 1.6 - gives a timeout and:

bzr: ERROR: Unprintable exception RaRequestFailed: dict={'_preformatted_string': None, 'mesage': "OPTIONS of 'https+webdav://hpoeri@server/bzr/sites/milapp': could not connect to server (https+webdav://server:0)"}, fmt='A Subversion remote access command failed: %(message)', error=ValueError('incomplete format',)

version of webdav: trunk
version of bzr_svn: 0.4.13 (from repository)
version of bzr: 1.7 (from repository)
system is: ubuntu hardy amd64, fully updated

Revision history for this message
Vincent Ladeuil (vila) wrote :

Can you provide the full traceback and the relevant part of the .bzr.log file ?

I suspect a problem with your svn server or the network connection itself, but really jelmer (bzr-svn author) should know more (and if he doesn't we need to talk ;-)

Changed in bzr.webdav:
status: New → Incomplete
Revision history for this message
HPO (hpo) wrote :

Sorry for the ambiguity: There is *NO* svn server involved. I try to pull a bzr branch via https+webdav. The bzr-svn plugin is installed for other cases.

If I rm -rf the svn plugin from bzrlib, the pull works fine (as before); after installing the svn plugin, it fails. Although I cannot see under the hood, I presume bzr-svn "takes" the https+webdav transport and tries to contact the svn server while I want to use the bzr branch at that address...

Revision history for this message
Jelmer Vernooij (jelmer) wrote : Re: [Bug 274840] Re: bzr-webdav and bzr-svn collide over transport

Am Freitag, den 26.09.2008, 17:04 +0000 schrieb Hans-Peter Oeri:
> Sorry for the ambiguity: There is *NO* svn server involved. I try to
> pull a bzr branch via https+webdav. The bzr-svn plugin is installed for
> other cases.
>
> If I rm -rf the svn plugin from bzrlib, the pull works fine (as before);
> after installing the svn plugin, it fails. Although I cannot see under
> the hood, I presume bzr-svn "takes" the https+webdav transport and tries
> to contact the svn server while I want to use the bzr branch at that
> address...
So what's happening is that bzr is asking bzr-svn where it can access
that URL, but the SVN request to the server is failing and bzr-svn is
properly raising an exception. bzr should be ignoring the error from
bzr-svn in this case. I don't see what more bzr-svn could do here.

Cheers,

Jelmer
--
Jelmer Vernooij <email address hidden> - http://samba.org/~jelmer/
Jabber: <email address hidden>

Revision history for this message
HPO (hpo) wrote :

Don't forget the timeout (it takes about a minute or two).

Could you attach this bug to the correct queue? (I don't see through bzr development yet)

Thanks

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

Not sure about the timeout - any chance you could see what's happening on the wire?

Changed in bzr-svn:
status: New → Incomplete
Revision history for this message
Vincent Ladeuil (vila) wrote :

Could you provide your .bzr.log while using the -Dhttp option ?

Changed in bzr:
status: New → Incomplete
Revision history for this message
HPO (hpo) wrote :

Attached, please see the .bzr.log. I suppose it includes what's "on the wire".

Revision history for this message
Vincent Ladeuil (vila) wrote :

That's enough for me to say that you should try again without +webdav so that we can exclude the webdav plugin from the equation :)

You don't need the plugin since you're only pulling.

The error that bzr-svn masks (funny how things go, we discussed the opposite case with jelmer, bzr masking errors for bzr-svn) is that bzr can't find the repository for your branch:

1.292 > GET /bzr/sites/milapp/temp/.bzr/repository/format
...
1.367 < HTTP/1.1 404 Not Found

so it let bzr-svn try, but that fails.

So I'd say it's really a bzr-svn bug here, where a server configured for svn (see < Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.5.1 PHP/5.2.4-2ubuntu5.3 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g) returns an response that bzr-svn fails to handle.

Among curious values in the RaRequestFailed are:
- mesage (missing 's' ?)
- https+webdav://saintcyr.oeri.ch:0: why the '0' port ? Did the server really received 'https+webdav' instead of just 'https' ?

Revision history for this message
HPO (hpo) wrote :

Excluding the +webdav gives a cli traceback and the attached log; further deinstalling the dav_svn apache module does not change the result.

Yes, I'm "only" pulling but use both ways - and like using the same branch url for push and pull...

I tried adding ":443" to the url which filled the "0". I suppose, 0 is taken for "default" here.

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

This is another case where bzr should keep trying while it keeps getting exceptions from plugins. I've added a workaround for now by catching the 20014 error and raising a NotBranchError.

Changed in bzr-svn:
assignee: nobody → jelmer
importance: Undecided → Low
milestone: none → 0.4.15
status: Incomplete → Fix Committed
Changed in bzr:
status: Incomplete → Invalid
Changed in bzr.webdav:
status: Incomplete → Invalid
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
status: Fix Committed → Fix Released
Revision history for this message
Robert Collins (lifeless) wrote :

On Sun, 2008-11-09 at 21:36 +0000, Jelmer Vernooij wrote:
> This is another case where bzr should keep trying while it keeps getting
> exceptions from plugins. I've added a workaround for now by catching the
> 20014 error and raising a NotBranchError.

The problem is that not all exceptions are equal. bzr can't tell
a-priori what is a fatal error and what is a plugin-behaving-badly.

-Rob
--
GPG key available at: <http://www.robertcollins.net/keys.txt>.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.