Push fails on webdav server

Bug #456883 reported by Jotaf
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar WebDAV plugin
Confirmed
Medium
Unassigned

Bug Description

I've been trying to set up a repository on a webdav server, but my puny Bazaar skills are letting me down. I've got Bazaar Explorer (Windows) and the webdav plugin seems to be properly installed. I have a local repository for test purposes, and try to push it into my account at mydrive.ch with the following command in the console (Bazaar Explorer's "advanced commands").

bzr push https://user:<email address hidden>

The error is: TransportNotPossible: Transport operation not possible: http does not support mkdir()

I ran it again with -Dhttp and inspected the log file; it seems that upon trying to create a directory the server simply replies with "not implemented"?

I attached the log for the event in question. Thanks!

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

Can you try with:
   bzr push https+webdav://user:<email address hidden>
and report ?

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

Thank you, that was embarrassing! I now get:

UnknownContainerFormatError: Unrecognised container format: 'B350'

It seems to have uploaded many of the bazaar-specific files, but stopped halfway there. I'm sorry, but looking at the log I have no clue... I've attached it in this post.

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

Wow, amazing....

So, if you read the log, you'll see that a warning is emitted:

7.391 if edq15dqgmfylqpnrr19z.pack is not empty, the server is buggy

And indeed the final error is related (without going into details, bzr find 'B350' instead of
a valid format description because appending to the file went wrong based on bogus behavior
from the server in response to the HEAD request).

And the bug here is that the server is sending:
  Content-Type: application/x-empty
instead of the expected
  Content-Length: 0
as specified in the RFC 2616 (which defines the http protocol)

Yet, the plugin assumes that the file is empty in that case so I don't understand what is occurring here.

On the other hand it also seems that we are re-issuing a lot of requests as if the server was closing early on many requests...

Changed in bzr.webdav:
importance: Undecided → Medium
status: Incomplete → Confirmed
Revision history for this message
Jotaf (jotaf98) wrote :

Yes, it seems that it's assuming that the file is empty and carrying on. Why are there so many moves and deletes, looking like it's using temporary files in the way? It only fails when it gets to that last delete anyway. A delete command is sent; the file is now empty. What's the surprise there? Sorry if I'm being naive!

I've used another open-source webdav app with this server and had no problem. Maybe there's a workaround they're aware of that you don't know yet? It's Zotero, a firefox plugin in javascript; they might have some clue. Maybe it uploads the files it needs directly without juggling temporary files, thus dodging the whole delete issue...

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

The delete is part of the cleanup processing when the push fails, it's not the cause of the bug.
The use of temporary files is part of the bzr design that ensures that several users can update
the same repository concurrently.
Thanks for the pointer about Zotero though.

Revision history for this message
Jotaf (jotaf98) wrote : RE: [Bug 456883] Re: Push fails on webdav server

Hm. Hard to solve then, eh? Did you spot anything else wrong in the log file?
About Zotero, I can try to see what they use for DAV. It's likely they use some of Firefox's facilities, exposed to the javascript plug-ins, but you never know.

> Date: Tue, 27 Oct 2009 16:42:17 +0000
> From: <email address hidden>
> To: <email address hidden>
> Subject: [Bug 456883] Re: Push fails on webdav server
>
> The delete is part of the cleanup processing when the push fails, it's not the cause of the bug.
> The use of temporary files is part of the bzr design that ensures that several users can update
> the same repository concurrently.
> Thanks for the pointer about Zotero though.
>
> --
> Push fails on webdav server
> https://bugs.launchpad.net/bugs/456883
> You received this bug notification because you are a direct subscriber
> of the bug.
>
> Status in Bazaar WebDAV plugin: Confirmed
>
> Bug description:
> I've been trying to set up a repository on a webdav server, but my puny Bazaar skills are letting me down. I've got Bazaar Explorer (Windows) and the webdav plugin seems to be properly installed. I have a local repository for test purposes, and try to push it into my account at mydrive.ch with the following command in the console (Bazaar Explorer's "advanced commands").
>
> bzr push https://user:<email address hidden>
>
> The error is: TransportNotPossible: Transport operation not possible: http does not support mkdir()
>
> I ran it again with -Dhttp and inspected the log file; it seems that upon trying to create a directory the server simply replies with "not implemented"?
>
> I attached the log for the event in question. Thanks!

_________________________________________________________________
Hotmail: Trusted email with powerful SPAM protection.
http://clk.atdmt.com/GBL/go/177141665/direct/01/

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

One weird thing in the log file is that same requests are retried without the corresponding message from bzrlib.
Did you delete part of the log file before posting it ?

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.