Opened at 2010-09-25T14:22:55Z
Last modified at 2013-03-18T19:17:07Z
#1212 closed defect
Repairing fails if less than 7 servers available — at Initial Version
Reported by: | eurekafag | Owned by: | |
---|---|---|---|
Priority: | critical | Milestone: | 1.8.1 |
Component: | code-network | Version: | 1.8.0 |
Keywords: | regression repair servers-of-happiness | Cc: | amontero@… |
Launchpad Bug: |
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.
Note: See
TracTickets for help on using
tickets.