[tahoe-dev] ticket #608: premature abort of upload if some shares were already present and some servers fail

Zooko O'Whielacronx zookog at gmail.com
Mon Feb 9 10:44:36 PST 2009


[This ticket was opened recently, and I thought it might be
interesting to readers of this list, who might want to work-around the
problem mentioned therein, or better yet to fix it.]

There is logic in
http://allmydata.org/trac/tahoe/browser/src/allmydata/immutable/encode.py?rev=20090107034822-92b7f-4b8bbe1a2c1bf374154bc1cd32ff8040e998ca00#L474
to abort an upload if there aren't enough remaining shareholders. This
fails to take into account that some shares might already have been
present on servers before this upload began. So for example if M=10,
and there were 5 shares present on servers when you started, and
shares_of_happiness is 7, then you'll be talking to 5 landlords, and
if one of them disconnects you should not then give up on the whole
upload, per this line:

        if len(self.landlords) < self.shares_of_happiness:
            msg = "lost too many shareholders during upload: %s" % why

To test this, the test needs to create a file with 10 shares, delete 5
of them, start an upload, and then arrange it that during the upload 3
of the servers fail -- the upload should proceed normally (since
share_of_happiness is 7). Also test what happens when 4 of them fail
-- the upload should stop immediately.

tickets mentioned in this message:

http://allmydata.org/trac/tahoe/ticket/608 # premature abort of upload
if some shares were already present and some servers fail


More information about the tahoe-dev mailing list