[tahoe-lafs-trac-stream] [tahoe-lafs] #1212: Upload (sometimes?) ignores shares.happy in tahoe.cfg
tahoe-lafs
trac at tahoe-lafs.org
Fri Oct 26 02:50:29 UTC 2012
#1212: Upload (sometimes?) ignores shares.happy in tahoe.cfg
-------------------------+-------------------------------------------------
Reporter: | Owner: kmarkley86
eurekafag | Status: closed
Type: defect | Milestone: 1.8.1
Priority: | Version: 1.8.0
critical | Keywords: regression repair servers-of-
Component: code- | happiness
network |
Resolution: fixed |
Launchpad Bug: |
-------------------------+-------------------------------------------------
Changes (by davidsarah):
* status: new => closed
* resolution: => fixed
* milestone: 1.10.0 => 1.8.1
Old description:
> I've tried to repair a file and got:
>
> {{{
> <class 'allmydata.interfaces.UploadUnhappinessError'>: shares could be
> placed on only 5 server(s) such that any 3 of them have enough shares
> to recover the file, but we were asked to place shares on at least 7
> such servers. (placed all 10 shares, want to place shares on at least
> 7 servers such that any 3 of them have enough shares to recover the
> file, sent 7 queries to 5 peers, 7 queries placed some shares, 0
> placed none (of which 0 placed none due to the server being full and 0
> placed none due to an error))
> }}}
>
> Everything worked fine on 1.7.1 and shares.happy = 3 (didn't changed it
> after upgrade). So I did a little investigation and found the problem.
> It's immutable/repairer.py, line 60:
>
> {{{
> happy = upload.BaseUploadable.default_encoding_param_happy
> }}}
>
> Why do we use default happy here? It definitely should be read from
> the config. I didin't dig further but replaced it with ugly hack:
>
> {{{
> happy = 3 #upload.BaseUploadable.default_encoding_param_happy
> }}}
>
> ...and the problem has gone! Repairing works with just 6 servers
> online.
New description:
I've tried to repair a file and got:
{{{
<class 'allmydata.interfaces.UploadUnhappinessError'>: shares could be
placed on only 5 server(s) such that any 3 of them have enough shares
to recover the file, but we were asked to place shares on at least 7
such servers. (placed all 10 shares, want to place shares on at least
7 servers such that any 3 of them have enough shares to recover the
file, sent 7 queries to 5 peers, 7 queries placed some shares, 0
placed none (of which 0 placed none due to the server being full and 0
placed none due to an error))
}}}
Everything worked fine on 1.7.1 and shares.happy = 3 (didn't changed it
after upgrade). So I did a little investigation and found the problem.
It's immutable/repairer.py, line 60:
{{{
happy = upload.BaseUploadable.default_encoding_param_happy
}}}
Why do we use default happy here? It definitely should be read from
the config. I didin't dig further but replaced it with ugly hack:
{{{
happy = 3 #upload.BaseUploadable.default_encoding_param_happy
}}}
...and the problem has gone! Repairing works with just 6 servers
online.
--
Comment:
Moved to #1830. The original problem was fixed in 1.8.1 I think. See #1130
and #1382 for other improvements to share placement and servers-of-
happiness.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1212#comment:61>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list