[tahoe-lafs-trac-stream] [tahoe-lafs] #1739: servers-responding list is wrong

tahoe-lafs trac at tahoe-lafs.org
Wed May 16 22:40:01 UTC 2012


#1739: servers-responding list is wrong
--------------------+------------------------
 Reporter:  warner  |          Owner:  warner
     Type:  defect  |         Status:  new
 Priority:  minor   |      Milestone:  soon
Component:  code    |        Version:  1.9.1
 Keywords:          |  Launchpad Bug:
--------------------+------------------------
 I ran into a bug, hunted it down, and squashed it. Here's the
 description and the patch:

 If a server did not respond to the pre-repair filecheck, but did
 respond to the repair, that server was not correctly added to the
 {{{RepairResults.data["servers-responding"]}}} list. (This resulted from
 a buggy usage of {{{DictOfSets.union()}}} in filenode.py).

 In addition, servers to which filecheck queries were sent, but did
 not respond, were incorrectly added to the servers-responding list
 anyawys. (This resulted from code in the checker.py not paying
 attention to the 'responded' flag).

 The first bug was neatly masked by the second: it's pretty rare to
 have a server suddenly start responding in the one-second window
 between a filecheck and a subsequent repair, and if the server was
 around for the filecheck, you'd never notice the problem. I only
 spotted the smelly code while I was changing it for IServer cleanup
 purposes.

 I added coverage to test_repairer.py for this. Trying to get that
 test to fail before fixing the first bug is what led me to discover
 the second bug. I also had to update test_corrupt_file_verno, since
 it was incorrectly asserting that 10 servers responded, when in
 fact one of them throws an error (but the second bug was causing it
 to be reported anyways).

-- 
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1739>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list