Comment 2 for bug 326302

Revision history for this message
Anthony Bush (awbush) wrote :

My issue is related: I *can't* upload the full tree because the connection dies after uploading 250-500 files. Since there are more files than this in the site I'm trying to upload I never get a full working copy up; running the `bzr upload` command starts the process all over, uploading files it already uploaded only to die again.

I've noticed a correlation between the speed of the upload and how many files it's able to upload before failing, so it could be a simple keep-alive issue, although I can't confirm that.

In my case, two things would help:

1. If connection fails while uploading a file simply retry up to some constant # of times (e.g. 10-20, possibly settable through CLI argument). try/catch/loop? although I'd think "upload_file_robustly" would already do this...

        bzr: ERROR: socket.error: (54, 'Connection reset by peer')
        ...
          File "/Users/awbush/.bazaar/plugins/upload/__init__.py", line 123, in upload_file
            self.to_transport.put_bytes(relpath, self.tree.get_file_text(id), mode)
        ...

2. Be able to resume the upload starting with the last failed file.

I've tried making a checkout of the attached branch, but I just get a "Operation not permitted" error:

    $ bzr branch ~encukou/bzr-upload/journalled bzr-upload-journalled
    $ cd bzr-upload-journalled
    $ python setup.py build
    $ mv build/lib/bzrlib/plugins/upload ~/.bazaar/plugins/upload_journalled
    $ bzr upload-j --remember ftp://user@host/upload_dir/
    No uploaded revision id found, switching to full upload
    Making control directory
    No upload directory
    Removing renames
    bzr: ERROR: Generic path error: '/upload_dir/.bzr-upload/renames': 550 /upload_dir/.bzr-upload/renames: Operation not permitted)