tahoe-lafs/src/allmydata/immutable
Brian Warner 9acf5beebd immutable repairer: populate servers-responding properly
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).
2012-05-16 16:55:09 -07:00
..
downloader Rewrite download-status-timeline visualizer ('viz') with d3.js 2011-10-31 23:18:21 -07:00
__init__.py move encode/upload/download/checker.py into a new immutable/ directory. No behavior changes expected. 2008-07-16 13:14:39 -07:00
checker.py immutable repairer: populate servers-responding properly 2012-05-16 16:55:09 -07:00
encode.py fix #1223, crash+inefficiency during repair due to read overrun 2010-10-29 01:20:36 -07:00
filenode.py immutable repairer: populate servers-responding properly 2012-05-16 16:55:09 -07:00
layout.py remove nodeid from WriteBucketProxy classes and customers 2011-08-01 15:43:17 -07:00
literal.py immutable/literal.py: add pauseProducing method to LiteralProducer. refs #1537 2011-10-03 12:52:39 -07:00
offloaded.py remove get_serverid() from ReadBucketProxy and customers, including Checker 2011-08-01 15:43:07 -07:00
repairer.py immutable/repairer.py: don't use the default happiness setting when repairing 2010-09-27 13:01:02 -07:00
upload.py Let Uploader retain History instead of passing it into upload(). Fixes #1079. 2011-08-28 23:32:46 -07:00