#1212 closed defect

Repairing fails if less than 7 servers available — at Version 1

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 (last modified by eurekafag)

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.

Change History (1)

comment:1 Changed at 2010-09-25T15:47:48Z by eurekafag

  • Description modified (diff)
Note: See TracTickets for help on using tickets.