Ticket #1771: fix-1771.darcs.patch

File fix-1771.darcs.patch, 125.9 KB (added by davidsarah, at 2012-06-17T00:24:34Z)

_auto_deps.py: bump the Twisted dependency to >= 11.0.0 to avoid Twisted bugs #411 (Deferred recursion limit) and #4395 (SSH server rekeying). refs #1297 fixes #1771

Line 
11 patch for repository tahoe-lafs.org:/home/source/darcs/tahoe-lafs/trunk:
2
3Sun Jun 17 01:21:25 BST 2012  david-sarah@jacaranda.org
4  * _auto_deps.py: bump the Twisted dependency to >= 11.0.0 to avoid Twisted bugs #411 (Deferred recursion limit) and #4395 (SSH server rekeying). refs #1297 fixes #1771
5
6New patches:
7
8[_auto_deps.py: bump the Twisted dependency to >= 11.0.0 to avoid Twisted bugs #411 (Deferred recursion limit) and #4395 (SSH server rekeying). refs #1297 fixes #1771
9david-sarah@jacaranda.org**20120617002125
10 Ignore-this: 967826d03c85ce6cd3c91a2238235f1e
11] hunk ./src/allmydata/_auto_deps.py 25
12     # frontend.
13     # We also need Twisted 10.1 for the FTP frontend in order for Twisted's FTP server to
14     # support asynchronous close.
15-    "Twisted >= 10.1.0",
16+    # When the cloud backend lands, it will depend on Twisted 10.2.0 which includes the fix to
17+    # https://twistedmatrix.com/trac/ticket/411
18+    # The SFTP frontend depends on Twisted 11.0.0 to fix the SSH server rekeying bug
19+    # http://twistedmatrix.com/trac/ticket/4395
20+    "Twisted >= 11.0.0",
21 
22     # foolscap < 0.5.1 had a performance bug which spent
23     # O(N**2) CPU for transferring large mutable files
24
25Context:
26
27[Make the intent of the loop over servers in test_system.Connections.test_rref clearer, and able to be the same in 1.9.2 and trunk. Remove the now-unused node_key_s attribute of Client. refs #1636
28david-sarah@jacaranda.org**20120616181844
29 Ignore-this: b0a769470bc18fd3c45db2f5549bb4ff
30]
31[Skip allmydata.test.test_system.Connections.test_rref unless we have foolscap >= 0.6.4, because of http://foolscap.lothar.com/trac/ticket/196 . refs #1636
32david-sarah@jacaranda.org**20120615232028
33 Ignore-this: 5fdebd85a84b602f44beee9e8b860616
34]
35[Fix a bug in mutable publish that could cause an IndexError when a writer is removed in Publish._connection_problem. This version uses DictOfSets as suggested by warner. fixes #1749
36david-sarah@jacaranda.org**20120615034437
37 Ignore-this: 367a37d0fff03c5339296a854ea23e35
38]
39[After a server disconnects, make the IServer retain the dead RemoteReference, and continue to return it to anyone who calls get_rref(). This removes the need for callers to guard against receiving a None (as long as the server was connected at least once, which is always the case for servers returned by get_servers_for_psi(), which is how all upload/download code gets servers). Includes test. fixes #1636
40david-sarah@jacaranda.org**20120615014855
41 Ignore-this: 55e671d9b7d2fcb45f2249b647e89364
42]
43[Since DeprecationWarning about twisted.internet.interfaces.IFinishableConsumer is suppressed globally, it doesn't need to be suppressed during import. refs #1295
44david-sarah@jacaranda.org**20120614213315
45 Ignore-this: 2a0cded7cab6052e348a3af6d46d0d7a
46]
47[misc/coding_tools/check-interfaces.py: clean-ups (warnings about Windows-specific modules and error stream handling).
48david-sarah@jacaranda.org**20120614212829
49 Ignore-this: 2033d237517525bfdf998a597bc13d13
50]
51[Suppress DeprecationWarning about twisted.internet.interfaces.IFinishableConsumer. This also unifies the handling of DeprecationWarnings that need to be suppressed globally. refs #1295
52david-sarah@jacaranda.org**20120614212308
53 Ignore-this: 44ef1c807f0ffd64712755c82d03a19
54]
55[test/common.py: fix race condition waiting for the helper connection
56Brian Warner <warner@lothar.com>**20120614191835
57 Ignore-this: c2fa3608dec9b1337ae557bd34874d97
58 
59 The wait_for_connections() method, which is used at the start of
60 test_system to make sure that all the clients are connected to all the
61 servers, did not also wait for clients to be connected to their Helpers.
62 Every once in a while, the helper connection would take a bit longer,
63 and then
64 test_system.SystemTest.test_filesystem._test_web._got_welcome_helper
65 would fail, because we'd check for a helper connection before it was
66 ready.
67 
68 The fix is to modify wait_for_connections's polling predicate to look
69 for helper connections (if configured) as well as the regular
70 introducer- and server- connections.
71 
72 Tested by temporarily adding a large (30s) delay to the connectTo() call
73 in Uploader.startService, simulating a long helper
74 connection-establishment delay. This makes the test fail consistently.
75 Then I fixed wait_for_connections(), and the test passed (slowly). Then
76 I removed the delay.
77 
78 Closes #1467
79]
80[introweb: the Subscribed Clients list shows tubids, not serverids
81Brian Warner <warner@lothar.com>**20120612213727
82 Ignore-this: a5ff1fd66cfe7b2ee362b7615c8d7ec7
83 
84 Improve the column headers to make it clear that this list shows Tub
85 IDs. (we can't show pubkey-based serverids because clients don't give
86 those to us: only servers provide pubkeys). This should be the only
87 place in the whole webapi that shows TubIDs for modern (V2-introducer)
88 nodes.
89]
90[Display serverids consistently as 8-char pubkey, or 6-char tubid.
91Brian Warner <warner@lothar.com>**20120612213034
92 Ignore-this: 6a6052fc0cd96afbe57b653af3e3c05e
93 
94 This makes it easy to distinguish between old V1-Introducer
95 nodes (identified by their Foolscap TubID) and new V2 nodes (identified
96 by their ed25519 pubkey).
97 
98 This fixes a few places where we used to display a tubid even if we had
99 a pubkey, making it hard to visually correlate servers in two different
100 displays. It also cleans up the way we pass serverids to the JS-based
101 download timeline.
102 
103 The "introweb" subscribed-clients list still shows tubids.
104]
105[test_system.py: wait for the Helper connection properly before uploading
106Brian Warner <warner@lothar.com>**20120612061930
107 Ignore-this: e34a2cce7250e15000bf7a4c2798ccd2
108]
109[test_system.py: clean up control flow, reduce use of stall()
110Brian Warner <warner@lothar.com>**20120612012235
111 Ignore-this: e1bf1aa9bc981df34cd8e0dafce40041
112 
113 The _upload_resumable() test interrupts a Helper upload partway
114 through (by shutting down the Helper), then restarts the Helper and
115 resumes the upload. The control flow is kind of tricky: to do anything
116 "partway through" requires adding a hook to the Uploadable. The previous
117 flow depended upon a (fragile) call to self.stall(), which waits a fixed
118 number of seconds.
119 
120 This removes one of those stall() calls (the remainder is in
121 test/common.py and I'll try removing it in a subsequent revision). It
122 also removes some now-redundant wait_for_connections() calls, since
123 bounce_client() doesn't fire its Deferred until the client has finished
124 coming back up (and uses wait_for_connections() internally to do so).
125]
126[test_system.py: fix minor typo
127Brian Warner <warner@lothar.com>**20120612011636
128 Ignore-this: a7fe88527daa9e6556f9c42d7b7f752e
129]
130[offloaded.py: don't drop the Deferred
131Brian Warner <warner@lothar.com>**20120612011602
132 Ignore-this: fc71d431d616fbbb37946d6d75193485
133 
134 There was one corner case (where the client disconnects at just the
135 wrong time) that could have dropped a Deferred, leading to an Unhandled
136 Error. Clean up the control flow to avoid this case.
137]
138[Clarify documentation of RIStorageServer.slot_testv_and_readv_and_writev. fixes #1744
139david-sarah@jacaranda.org**20120613165135
140 Ignore-this: d0fca05f06dd9998140d1031bebf8620
141]
142[setup.py and bin/tahoe-script.template: the error when we try to use Python 3 should give the correct minimum Python version (now 2.5). refs #1658
143david-sarah@jacaranda.org**20120611035216
144 Ignore-this: 148f7fb936eca727c54bbc06e48801d7
145]
146[introducer: add sequence-numbers to announcements, ignore replays
147Brian Warner <warner@lothar.com>**20120611021022
148 Ignore-this: 1f0754837df8e48deb314aeff3eefc34
149 
150 This will support revocation of Accounting recommendation records,
151 assuming the gossip-based broadcast channel isn't easily jammed.
152]
153[client.py: rename "server key" to "node key", use old name if present
154Brian Warner <warner@lothar.com>**20120611011455
155 Ignore-this: cf632b9e6925144027dcd453aa4e3e6e
156 
157 This prepares for invitation-based reciprocal-permission Accounting. In
158 the scheme I'm developing, nodes publish "I accept shares from Y"
159 messages, which are assembled into a graph, and server will accept
160 shares from any client node reachable in this graph. For this to work,
161 the serverX->clientY edge must be connectable to the serverY->clientZ
162 edge, which means "clientY" and "serverY" must be connected. If clientY
163 and serverY are two distinct keys, they must be cross-signed. Life is
164 easier if there's just one key "Y", rather than distinct client- and
165 server- keys. Calling this one key "server.privkey" would be confusing.
166 "node.privkey" and "node.pubkey" makes more sense.
167 
168 One-server-per-node is a pretty easy restriction. Originally I was
169 thinking that the client.key should be provided in each webapi call,
170 just like a filecap is, making a single node useable by multiple users
171 (Accounting principals), and not providing any ambient storage
172 authority. But I've been unable to think of a comfortable WUI for
173 that (at least without requiring javascript), nor a friendly way to
174 transfer account authority (e.g. writecaps that include storage
175 authority). So I'm more willing to have one-client-per-node these days.
176 
177 (and note that this rename doesn't seriously preclude
178 many-clients-per-node or zero-clients-per-node anyways, it just makes
179 one-client-per-node less awkward)
180]
181[node.py: add get_private_config()
182Brian Warner <warner@lothar.com>**20120611004638
183 Ignore-this: 29533aedf4e246efa38cbb9bce5b67b7
184 
185 Also add tests for this and the pre-existing private-config methods.
186]
187[Added docs/specifications/backends/raic.rst for ticket #1760
188Brian Warner <warner@lothar.com>**20120610193236
189 Ignore-this: 23eb716a368c0e442d8ce4a5bfa95959
190]
191[Fix text in Publish Status results. Closes #1762.
192Brian Warner <warner@lothar.com>**20120608222146
193 Ignore-this: 69690fc03c93e81e1d66efe77940745f
194]
195[CheckResults corrupt/incompatible shares now return IServers
196Brian Warner <warner@lothar.com>**20120602183912
197 Ignore-this: f8edd8ca693813f311cdc05199c1d2ec
198 
199 DeepResultsBase also has a get_corrupt_shares(), and it is populated
200 from CheckResults.get_corrupt_shares(). It has been updated too, along
201 with get_remaining_corrupt_shares().
202 
203 Remove temporary get_new_corrupt_shares() and
204 get_new_incompatible_shares().
205]
206[CheckResults.get_servers_responding() now returns IServers
207Brian Warner <warner@lothar.com>**20120602183912
208 Ignore-this: 90d55bae8a231dd89f4addee8cb5f2d8
209 
210 Remove temporary get_new_servers_responding().
211]
212[CheckResults.get_sharemap() now returns IServers
213Brian Warner <warner@lothar.com>**20120602183911
214 Ignore-this: 535d6a5416628892ca019f9dafe3e8cb
215 
216 Remove temporary get_new_sharemap().
217]
218[CheckResults: pass IServer to corrupt/incompatible share locators
219Brian Warner <warner@lothar.com>**20120602183911
220 Ignore-this: 11f8930ae6449de33f8d426f70247e8d
221 
222 Getters still return serverid. Adds temporary get_new_corrupt_shares()
223 and get_new_incompatible_shares().
224]
225[CheckResults: pass IServer to servers_responding=, getter returns serverid
226Brian Warner <warner@lothar.com>**20120602183911
227 Ignore-this: c736cf11768bb02633bdabf1612247f4
228 
229 Add temporary get_new_servers_responding().
230]
231[CheckResults: pass IServer to sharemap=, but get_sharemap() returns serverids
232Brian Warner <warner@lothar.com>**20120602183911
233 Ignore-this: 6a03fd26e5e4e6cddda2cec207ec8ed2
234 
235 This changes all code which feeds CheckResults(sharemap=) to provide
236 IServer instances, but CheckResults converts these to old-style
237 serverids during output, so downstream code doesn't have to change yet.
238 
239 It adds a temporary get_new_sharemap(), which *does* return IServer
240 instances, so the immutable repairer can build new CheckResults from an
241 old one. This will go away when get_sharemap() is updated to return
242 IServer (and downstream code is updated too).
243]
244[CheckResults: internal cleanup
245Brian Warner <warner@lothar.com>**20120602183911
246 Ignore-this: fcd1c6918bae4d5ca09014c29a616307
247 
248 replace the one-big-dictionary with normal private attributes
249]
250[CheckResults: privatize remaining attributes
251Brian Warner <warner@lothar.com>**20120602183910
252 Ignore-this: a5e08fd7732255dde8634748d447dbe4
253]
254[CheckResults: use fat init, add type-checking assertions
255Brian Warner <warner@lothar.com>**20120602183910
256 Ignore-this: ac6374aa0da3f510e91bd053aa928780
257 
258 Added assertions for sharemap, servermap, servers_responding,
259 list_corrupt_shares, and list_incompatible_shares.
260]
261[mutable/checker: refactor to make CheckResults easier to change
262Brian Warner <warner@lothar.com>**20120602183910
263 Ignore-this: 36dbc39a32fc1d2b0f4361b29535fa3c
264]
265[CheckResults: replace get_data() with as_dict(), use getters in web status
266Brian Warner <warner@lothar.com>**20120602183910
267 Ignore-this: 217a5b3c63762aef5cbe833e2c318640
268]
269[use the new CheckResult getters almost everywhere
270Brian Warner <warner@lothar.com>**20120602183910
271 Ignore-this: b306cdd9f51184b2826759200cd427ae
272 
273 The remaining get_data() calls are either in
274 web.check_results.json_check_results(), or functioning as repr()s in
275 various unit test failure cases.
276]
277[CheckResults: replace get_data() with a bunch of individual getters
278Brian Warner <warner@lothar.com>**20120602183910
279 Ignore-this: 2e2c976ee12d487d39386d5782991e0d
280]
281[change CheckResults to use a fat set_data()
282Brian Warner <warner@lothar.com>**20120602183910
283 Ignore-this: 24b940b80173dadbfc70ee803574051d
284 
285 i.e. change set_data() to accept lots of parameters, instead of taking
286 a single dictionary with lots of keys. Also Convert all CheckResults
287 creators to use it.
288]
289[CheckResults: simplify self._data
290Brian Warner <warner@lothar.com>**20120602183909
291 Ignore-this: d1fdfb0bcaec56fe0e87c91de87b81a1
292]
293[CheckResults: start hiding .data, first step to clean it up
294Brian Warner <warner@lothar.com>**20120602183909
295 Ignore-this: fdeb1eeeb44f6099cbfdcc80a5060b45
296 
297 The goal is to make CheckResults more strongly typed, and remove the
298 ambiguous ".data" field in favor of a bunch of specific counters and
299 sharelists, so I can changes .sharemap and .servermap to use IServer
300 instances instead of string serverids. By cleaning this up first, I hope
301 to get that task done with less debugging.
302]
303[immutable.CiphertextFileNode.check_and_repair: simplify for refactoring
304Brian Warner <warner@lothar.com>**20120602183909
305 Ignore-this: 28e6a8e8a2d682af4da730908d854143
306 
307 There were too many nested functions here, making some upcoming changes
308 too difficult, so let's refactor it first.
309]
310[docs/quickstart.rst: fix rst warning.
311david-sarah@jacaranda.org**20120601210104
312 Ignore-this: c98d18e2eb028011936ebffd855bf0ea
313]
314[node.py: stop stripping whitespace in write_private_config()
315Brian Warner <warner@lothar.com>**20120530071755
316 Ignore-this: 84fe81a4bab679170dffc3e58992ca83
317 
318 It's nice to add newlines to the saved file, so 'cat' is easy to use. We
319 still strip on the input side, in get_or_create_private_config().
320]
321[Restore --rterrors option to 'setup.py test' and 'setup.py trial' to keep buildbots happy. refs #1699
322david-sarah@jacaranda.org**20120531222307
323 Ignore-this: 62b8798fa0b50441df64f50ed5f9a117
324]
325[Change 'setup.py test' and 'setup.py trial' to pass --rterrors to trial by default. Suppress using --no-rterrors. Also pass --until-failure/-u to trial. fixes #1699
326david-sarah@jacaranda.org**20120531220000
327 Ignore-this: 78bdfcfb1142ed260197996a3c1b22b1
328]
329[test_web.py: fix memory leak when run with --until-failure
330Brian Warner <warner@lothar.com>**20120522223949
331 Ignore-this: 17161fd0629fd86d4112220b13e10094
332 
333 The Fake*Node classes in test/common.py were accumulating share data in
334 a class-level dictionary, which persisted from one test run to the next.
335 As a result, running test_web.py over and over (with trial's
336 --until-failure feature) made this dictionary grow without bound,
337 eventually running out of memory.
338 
339 This fix moves that dictionary into the FakeClient built fresh for each
340 test, so it doesn't build up. It does the same thing for "file_types",
341 which was much smaller but still lived at the class level.
342 
343 Closes #1729
344]
345[test/check_memory.py: oops, fix one last ur.uri -> ur.get_uri()
346Brian Warner <warner@lothar.com>**20120522155036
347 Ignore-this: 1f0361a2f9a28e052e02ad4f11463a2b
348]
349[change UploadResults to return IServers, update users to match
350Brian Warner <warner@lothar.com>**20120522041837
351 Ignore-this: 8f553b4e15a739b10db067840d24d794
352 
353 This finally changes all callers of get_servermap()/get_sharemap() to
354 accept IServers, and changes UploadResults to provide them.
355]
356[UploadResults: store IServers internally, but still return serverids
357Brian Warner <warner@lothar.com>**20120522041825
358 Ignore-this: 50f74032f9c4a0b580950e75d36b9151
359 
360 This stores IDisplayableServer-providing instances (StubServers or
361 NativeStorageServers) in the .servermap and .sharemap dictionaries. But
362 get_servermap()/get_sharemap() still return data structures with
363 serverids, not IServers, by translating their data on the way out. This
364 lets us put off changing the callers for a little bit longer.
365]
366[split IDisplayableServer from IServer, add sb.get_stub_server()
367Brian Warner <warner@lothar.com>**20120522041727
368 Ignore-this: d71a29164f7c1651fb2a75391006dea3
369 
370 IDisplayableServer includes just enough functionality to call
371 .get_name() and friends, which is all that the UploadResults really
372 need. IServer is a superset that includes actual share-manipulation
373 methods. StubServer instances provide only IDisplayableServer, while
374 actual NativeStorageServer instances provide the full IServer interface.
375 
376 When the Helper sends a serverid (so we know what to call the server but
377 nothing else about it, and have no corresponding NativeStorageServer
378 object to reference), but we want to store an IDisplayableServer in the
379 UploadResults, we create a synthetic StubServer "server" and store that
380 instead.
381]
382[switch UploadResults to use get_uri(), hide internal ._uri
383Brian Warner <warner@lothar.com>**20120522041444
384 Ignore-this: 65c9e9fc0ad6f78a782ff11dc834d85c
385 
386 Complete the getter-based transformation, by hiding ".uri" and updating
387 callers to use get_uri(). Also don't set a dummy self._uri, leave it
388 undefined until someone calls set_uri().
389]
390[switch UploadResults to use getters, hide internal data, for all but .uri
391Brian Warner <warner@lothar.com>**20120522041428
392 Ignore-this: aa2e8b898d9e3f88a006d46eae109c8
393 
394 This hides attributes with e.g. _sharemap, and creates getters like
395 get_sharemap() to access them, for every field except .uri . This will
396 make it easier to modify the internal representation of .sharemap
397 without requiring callers to adjust quite yet.
398 
399 ".uri" has so many users that it seemed better to update it in a
400 subsequent patch.
401]
402[convert UploadResults to a fat init
403Brian Warner <warner@lothar.com>**20120522041414
404 Ignore-this: 397e665bb8969b7b98e0217b7b0bbee6
405 
406 Populate most of UploadResults (except .uri, which is learned later when
407 using a Helper) in the constructor, instead of allowing creators to
408 write to attributes later. This will help isolate the fields that we
409 want to change to use IServers.
410]
411[add HelperUploadResults
412Brian Warner <warner@lothar.com>**20120522041400
413 Ignore-this: b2043a5adb21d47600d5d0a59ac60879
414 
415 This splits the pb.Copyable on-wire object (HelperUploadResults) out
416 from the local results object (UploadResults). To maintain compatibility
417 with older Helpers, we have to leave pb.Copyable classes alone and
418 unmodified, but we want to change UploadResults to use IServers instead
419 of serverids. So by using a different class on the wire, and translating
420 to/from it on either end, we can accomplish both.
421]
422[Uploader cleanup: create results at end, not beginning
423Brian Warner <warner@lothar.com>**20120522041347
424 Ignore-this: 82a8a6d0d32f62f2f7a25f8b8545a2f8
425 
426 This will make it easier to populate the UploadResults during __init__,
427 instead of doing it one-field-at-a-time later.
428]
429[clean up Helper to make later changes easier
430Brian Warner <warner@lothar.com>**20120522041332
431 Ignore-this: a7ed4d4d1ebbfd5fb5ae04bb2ae3a75b
432 
433 Fix up control flow inside the Helper, to make it more friendly for
434 later refactoring.
435]
436[helper: remove timings["existence_check"], aka "Already-In-Grid Check"
437Brian Warner <warner@lothar.com>**20120522041311
438 Ignore-this: e0de1fb6a36399135dfc9530e702f669
439 
440 This measured how long the Helper took to do a filecheck before asking
441 for ciphertext. The "Contacting Helper" report includes both
442 existence_check and the client-helper RTT.
443 
444 For non-overlapping uploads, it was being returned correctly. But when
445 multiple upload requests overlapped, and the file was not already in the
446 grid, the filecheck would only run once, and its existence_check time
447 would be reported for all uploaders (even if they didn't have to wait
448 for that time). Cleaning that up proved too difficult: the only correct
449 place to report this time is from the initial remote_upload_chk() call,
450 but the return value of that is too constrained to accomodate it in the
451 needs-upload case.
452 
453 So I'm removing it altogether. Eventually I plan to add a proper
454 events/times field and record more data, including this check, in a form
455 that can be drawn on a nice zoomable timeline view.
456 
457 Old clients talking to a new Helper (which doesn't supply the value)
458 will tolerate the loss (they'll just display an empty field on the web
459 view).
460]
461[test_checker: minor improvement in fake-server setup
462Brian Warner <warner@lothar.com>**20120522024936
463 Ignore-this: e3d22200a1c7b53e856c5899eb80465
464 
465 This prepares for testing the differences between tubid and pubkey-based
466 name/longname.
467]
468[Catch exceptions from CLI in order to prevent the Ubuntu crash monolog from triggering. refs #1746
469david-sarah@jacaranda.org**20120520153529
470 Ignore-this: 1621a76cb85fbb97c241b140557e6d5c
471]
472[docs/frontends/FTP-and-SFTP.rst: remove outdated allmydata.com reference. fixes #1743
473david-sarah@jacaranda.org**20120518225618
474 Ignore-this: a1e38e3f1d2138abd9d32087aeb71b3
475]
476[misc/build_helpers/check-interfaces.py: avoid spurious warnings about ignored exceptions on shutdown. Also make the check function able to write errors to an arbitrary stream.
477david-sarah@jacaranda.org**20120518021252
478 Ignore-this: 7d6b03286d7b1b4a726ff06f2c07f8c6
479]
480[dictutil.DictOfSets: remove .union() method, it was misleading
481Brian Warner <warner@lothar.com>**20120516235509
482 Ignore-this: ede3d11bf6de0d01f57b8bd85ff2da22
483 
484 Unlike set.union(), which returns a new set, DictOfSets.union() modified
485 the DictOfSets in-place. The name collision bit me when I changed some
486 code from using DictOfSets to a normal set, and expected that
487 set.union() would modify the set in-place. Since there was only one user
488 of DictOfSets.union, I figured it was safer to just get rid of it.
489]
490[immutable repairer: populate servers-responding properly
491Brian Warner <warner@lothar.com>**20120516235509
492 Ignore-this: d840f7dc056fa7efeaad1dd3f1c707c6
493 
494 If a server did not respond to the pre-repair filecheck, but did respond
495 to the repair, that server was not correctly added to the
496 RepairResults.data["servers-responding"] list. (This resulted from a
497 buggy usage of DictOfSets.union() in filenode.py).
498 
499 In addition, servers to which filecheck queries were sent, but did not
500 respond, were incorrectly added to the servers-responding list
501 anyawys. (This resulted from code in the checker.py not paying attention
502 to the 'responded' flag).
503 
504 The first bug was neatly masked by the second: it's pretty rare to have
505 a server suddenly start responding in the one-second window between a
506 filecheck and a subsequent repair, and if the server was around for the
507 filecheck, you'd never notice the problem. I only spotted the smelly
508 code while I was changing it for IServer cleanup purposes.
509 
510 I added coverage to test_repairer.py for this. Trying to get that test
511 to fail before fixing the first bug is what led me to discover the
512 second bug. I also had to update test_corrupt_file_verno, since it was
513 incorrectly asserting that 10 servers responded, when in fact one of
514 them throws an error (but the second bug was causing it to be reported
515 anyways).
516]
517[Update my (davidsarah) gpg fingerprint in CREDITS. Mwahaha! :-)
518david-sarah@jacaranda.org**20120516231526
519 Ignore-this: e65336db38ff2227e3d2cce8a31aa397
520]
521[fileutil.py: use try/finally to close file in write_atomically.
522david-sarah@jacaranda.org**20120516230839
523 Ignore-this: 6bd8cfcedc26ec03acf72334fe0e1ce6
524]
525[write node.url and portnum files atomically, to fix race in test_runner
526Brian Warner <warner@lothar.com>**20120514220314
527 Ignore-this: 57eea88ec0efef779769632d43329362
528 
529 Previously, test_runner sometimes fails because the _node_has_started()
530 poller fires after the portnum file has been opened, but before it has
531 actually been filled, allowing the test process to observe an empty file,
532 which flunks the test.
533 
534 This adds a new fileutil.write_atomically() function (using the usual
535 write-to-.tmp-then-rename approach), and uses it for both node.url and
536 client.port . These files are written a bit before the node is really up and
537 running, but they're late enough for test_runner's purposes, which is to know
538 when it's safe to read client.port and use 'tahoe restart' (and therefore
539 SIGINT) to restart the node.
540 
541 The current node/client code doesn't offer any better "are you really done
542 with startup" indicator.. the ideal approach would be to either watch the
543 logfile, or connect to its flogport, but both are a hassle. Changing the node
544 to write out a new "all done" file would be intrusive for regular
545 operations.
546]
547[Change logging.rst to address warner's review comment. refs #1693
548david-sarah@jacaranda.org**20120516221329
549 Ignore-this: d578a002b5a0fa117b51981346168148
550]
551[Since we now require Python 2.5, we can use os.SEEK_END.
552david-sarah@jacaranda.org**20120516213948
553 Ignore-this: cd9ecbb0c48d79cc7acc5bd27cb99d50
554]
555[Simplifications resulting from requiring Python 2.5 and therefore being able to use sqlite3 from the standard library. This also drops sqlite3 from the set of versions and paths we report.
556david-sarah@jacaranda.org**20120516024725
557 Ignore-this: c9161f1a95caa85a638aee893361f2cf
558]
559[Require Python 2.5.
560david-sarah@jacaranda.org**20120516024149
561 Ignore-this: 640715ce841a7a3af92027810baf9e3
562]
563[Improve a comment in __init__.py.
564david-sarah@jacaranda.org**20120514163431
565 Ignore-this: bbdce3d50dce46e497eba71f9146079e
566]
567[Suppress the PowmInsecureWarning from PyCrypto. refs #1586
568david-sarah@jacaranda.org**20120514032352
569 Ignore-this: 9cfd6936bc31e320d1ea9d52a495dbaa
570]
571[Clarify an ambiguity about which version number is meant in quickstart.rst.
572david-sarah@jacaranda.org**20120514002637
573 Ignore-this: afac742bcfb4aba9021b07e7505d4de0
574]
575[performance.rst: small updates, mention (lack of) MDMF
576Brian Warner <warner@lothar.com>**20120513210739
577 Ignore-this: 8c8beb98b6be5f6b4697cf507798957f
578 
579 refs #1398
580]
581[CREDITS: add amiller, zooko, rearrange a bit
582Brian Warner <warner@lothar.com>**20120513173217
583 Ignore-this: 4db3b71cdaf52e1596532ac9133186ae
584]
585[Doc updates and cosmetic fixes for #1115 patch.
586Brian Warner <warner@lothar.com>**20120513081550
587 Ignore-this: 87721ec10d0aee1124f2f24bdaea3007
588 
589 Removes the caveat from webapi.txt about count-good-share-hosts being wrong.
590 
591 This series should close #1115.
592]
593[Fixed an error in previous commit where an empty servermap would throw an exception in 'count-good-share-hosts'. Augmented unit test.
594Brian Warner <warner@lothar.com>**20120513075930
595 Ignore-this: 8c8937b3b3e15c63d9386628493f394e
596 
597 Signed-off-by: Andrew Miller <amiller@dappervision.com>
598]
599[Added tests for count-good-share-hosts under check and repair conditions. Patched the incorrect computation in immutable/filenode.py
600Brian Warner <warner@lothar.com>**20120513075930
601 Ignore-this: 6a77a5058adf18bca0a3517a77cf6190
602 
603 Signed-off-by: Andrew Miller <amiller@dappervision.com>
604 
605 Fixed missing import statements
606 
607 Signed-off-by: Andrew Miller <amiller@dappervision.com>
608]
609[test_web: fix use of headers= that's been wrong for a while
610Brian Warner <warner@lothar.com>**20120513074512
611 Ignore-this: 681e1ac6eafd23a0babfe8f182e3ca8
612]
613[webapi: don't allow ETags in t=info or t=rename-form, both are variable
614Brian Warner <warner@lothar.com>**20120513074511
615 Ignore-this: 40387e1534c9a5c202280d604eddfdcc
616 
617 t=info contains randomly-generated ophandles, and t=rename-form contains the
618 name of the child being renamed, so neither is eligible for a
619 short-circuiting ETag. Enhanced test_web to exercise this. Had to improve
620 FakeCHKFileNode slightly to let it participate. Refs #443.
621]
622[test_web: improve ETag tests, add If-None-Match test
623Brian Warner <warner@lothar.com>**20120513074511
624 Ignore-this: 72702e3237430441a4c98a084ae63df4
625]
626[Added unit tests covering #466:comment-15. Refactored the 'etag' behavior for immutable files to respond to all GET '?t=' flags, not just t=None
627Brian Warner <warner@lothar.com>**20120513074511
628 Ignore-this: fc3ba31b5678c08752b60fa3dd77fa83
629 
630 Signed-off-by: Andrew Miller <amiller@dappervision.com>
631]
632[Short circuit GET on ETags match
633Brian Warner <warner@lothar.com>**20120513074511
634 Ignore-this: 33d540fbc702c6b43e30d957107ba0b4
635 
636 When client does a conditional GET/HEAD with If-none-match:, if the condition
637 fails (ie, the client's ETag matches the file's) then we can short-circuit
638 the whole process and immediately return an empty body.
639]
640[Add ETags for immutable directories
641Brian Warner <warner@lothar.com>**20120513074511
642 Ignore-this: b173e8a1219e5fe906d49edc006da993
643 
644 Like immutable files, the ETag is based on the storage index. However, since
645 a directory is a special interpretation of a file, it is distinguished from
646 the file by prepending "DIR:" onto the start of the ETag, and adding
647 -representation on the end (where -representation is the ?t= argument, json,
648 info, etc).
649 
650 It also checks the return of setETag and avoids generating a representation
651 if the client already has it.
652]
653[test-dont-use-too-old-dep.py: fix tarfile timestamps
654Brian Warner <warner@lothar.com>**20120513063403
655 Ignore-this: b7acb8e369d768e072f3658b2de9af03
656 
657 It turns out that TarFile.addfile() doesn't provide a reasonable default
658 timestamp, resulting in files dated to 1970 (they're probably wearing
659 bell-bottoms and listening to disco too). Then, when the bdist_egg command
660 tries to create a *zip*file with those files, it explodes because zipfiles
661 cannot handle timestamps before 1980 (it prefers boomboxes and jackets with
662 straps on the shoulders, thank you very much).
663 
664 This puts a modern time.time() on the members of the tarfile, allowing future
665 cryptocoderarchaeologists the opportunity to make fun of fashion trends from
666 the user's chosen era, rather than an artificially older one.
667 
668 refs #1342
669]
670[Add 'tahoe debug flogtool' command, test for --help, and docs. This version gets the help synopses more correct, and changes the doc to say that this command is added in 1.10.0 rather than 1.9.2. fixes #1693
671david-sarah@jacaranda.org**20120331224122
672 Ignore-this: 9c2bc2f7b684323515690d658060c3fc
673]
674[modify build_helpers files
675Brian Warner <warner@lothar.com>**20120513034724
676 Ignore-this: 7f02472b3fbc2bfba4c02acce7d728e7
677 
678 Should close #1342. This makes the actual changes to the two test
679 files (separated from the 'rename' patch to avoid VC complications).
680]
681[rename build_helpers files
682Brian Warner <warner@lothar.com>**20120513034701
683 Ignore-this: c1e7257dc66d0d35dcbc830fbe04ab9b
684 
685 This is from the darcs patch for #1342, which failed to apply on my darcs
686 tree, so I'm landing it from git. I'm landing the rename-files part
687 separately from the modify-those-files part to avoid VC complications.
688]
689[webapi: remove undocumented t=mkdir-p operation
690Brian Warner <warner@lothar.com>**20120513021943
691 Ignore-this: 10bc56cc8bef468881fc7dd5a586bdf9
692 
693 Closes #380
694]
695[Improve webapi t=move docs.
696Brian Warner <warner@lothar.com>**20120509234653
697 Ignore-this: a9342b5cef162c12efec04e2d21ec777
698]
699[webui: merge 'move' form with 'rename' form
700Brian Warner <warner@lothar.com>**20120509212137
701 Ignore-this: a073958075eb1d041546f68342ec2ba2
702]
703[test_web: improve shouldFail2() error reporting
704Brian Warner <warner@lothar.com>**20120509211837
705 Ignore-this: 2ab6738d46fead5b49496ba379fd1d98
706]
707[webapi 'move'-button cleanups
708Brian Warner <warner@lothar.com>**20120509211827
709 Ignore-this: dc3bfe40150969222923f0abcf0ad691
710 
711 test_web.py: use shouldFail2(), safer than old shouldFail()
712 directory.py: forbid slashes in from_name=, return BAD_REQUEST instead of
713               GONE when trying to move into a non-directory
714]
715[Add unit test for moving a directory
716Brian Warner <warner@lothar.com>**20120509200714
717 Ignore-this: a915d7ddf007abf8b7d69c8e441d21dd
718 
719 My gut tells me this case sould be tested. The rename suite tests it, so
720 move's will too.
721]
722[Change the arbitrary URI support from implied to explicit
723Brian Warner <warner@lothar.com>**20120509200714
724 Ignore-this: 1117c90c8f5ea4e4155d3f0ac50e50d9
725 
726 The move webapi function now takes a target_type argument which lets it
727 know whether the target is a subdirectory name or URI. This is an
728 improvement over the old system in which the move handler tried to guess
729 whether the target was a name or a URI. Also fixed a little docs
730 copypaste problem and tweaked some line wrapping.
731]
732[Adding 'move' button to web UI, closes #1579
733Brian Warner <warner@lothar.com>**20120509200713
734 Ignore-this: d58ce02d31c0683c6859065b8c36f5d6
735 
736 This adds "move file" capability to the web UI's directory display. The
737 support and test framework is heavily based on the similar "rename file"
738 feature. Unit tests and documentation are included. Multiple in-progress
739 versions of this patch may be found in ticket 1579. This version
740 includes arbitrary URI target support and is compatible with the change
741 from tahoe_css to tahoe.css.
742]
743[CREDITS: lebek
744zooko@zooko.com**20120503173033
745 Ignore-this: 6c0ff786ce67697f7af7b861593992e3
746]
747[Make sure that foolscap.logging.log.setLogDir is called with a str (not unicode) path, v2. Includes test. fixes #1725
748david-sarah@jacaranda.org**20120429022844
749 Ignore-this: 1e94ed0c092c5c93c0a4031f8b8df092
750]
751[introweb announcements: show serverid, not tubid
752Brian Warner <warner@lothar.com>**20120424053728
753 Ignore-this: 4de5d89b06f4f067ec23f879582fdfaa
754 
755 'serverid' is the pubkey (for V2 clients), falling back to the tubid (for V1
756 clients). This also required cleaning up the way the index is created for the
757 old V1 introducer.
758]
759[Fix introweb display for mixed V1/V2 clients. Closes #1721.
760Brian Warner <warner@lothar.com>**20120423223053
761 Ignore-this: 766a34730dfce5b2d8c4ee1a411f50fb
762 
763 This significantly cleans up the IntroducerServer web-status renderers.
764 Instead of poking around in the introducer's internals, now the web-status
765 renderers get clean AnnouncementDescriptor and SubscriberDescriptor
766 objects. They are still somewhat foolscap-centric, but will provide a clean
767 abstraction boundary for future improvements.
768 
769 The specific #1721 bug was that old (V1) subscribers were handled by
770 wrapping their RemoteReference in a special WrapV1SubscriberInV2Interface
771 object, but the web-status display was trying to peek inside the object to
772 learn what host+port it was associated with, and the wrapper did not proxy
773 those extra attributes.
774 
775 A test was added to test_introducer to make sure the introweb page renders
776 properly and at least contains the nicknames of both the V1 and V2 clients.
777]
778[Updated webapi.rst to list /cap as a synonym for /uri
779Brian Warner <warner@lothar.com>**20120417184111
780 Ignore-this: c7dfb12987d883c94948f3fede254fe4
781]
782[Adding jg71 to CREDITS
783markus reichelt <mr@mareichelt.com>**20120414140107
784 Ignore-this: b69a4c4b5248a7092c550de395192afb
785]
786[Fix for ticket #1662
787Brian Warner <warner@lothar.com>**20120410183314
788 Ignore-this: b2164418fb1a24cef2bddf1ec3c42eed
789]
790[docs/frontends/drop-upload.rst: document more known issues and link to new ticket for an existing one.
791david-sarah@jacaranda.org**20120406043946
792 Ignore-this: 72e0a821961fb9137bb6f53742e4ba43
793]
794[test/common.py: remove ununsed 'is_bad' mechanism
795Brian Warner <warner@lothar.com>**20120404191103
796 Ignore-this: 15b5d8d66e8ee902831b8171a9069763
797 
798 This was a premature feature addition to the mock filenode, and gets in the
799 way of the IServer refactoring I'm trying to do. Best to remove it now and
800 re-introduce it in a better form later when it's actually needed.
801]
802[checker.py: minor simplifications
803Brian Warner <warner@lothar.com>**20120404190531
804 Ignore-this: 170f3e70dccd61c1ddb6ea6995ad09ca
805]
806[make IServer instances retain identity in copy() and deepcopy()
807Brian Warner <warner@lothar.com>**20120404181409
808 Ignore-this: ff39267d0e967cc76591ba5166f63fc7
809]
810[move IServer from storage_client.py to interfaces.py
811Brian Warner <warner@lothar.com>**20120404181359
812 Ignore-this: 7713ad62faa2841659ce5ed287d0837b
813]
814[Change capitalization of WUI and introducer welcome page headings; add test for introducer welcome page. Also fix a typo in a CSS class name. fixes #1708
815david-sarah@jacaranda.org**20120405235723
816 Ignore-this: 9b0055847a793528a028679847ab493c
817]
818[Rename web CheckResults to -Renderer, to avoid confusion. Closes #1705.
819Brian Warner <warner@lothar.com>**20120403030451
820 Ignore-this: 4c3e20d804e70a27d2464f770aec0c2c
821 
822 This avoids the name collision between the actual results
823 objects (defined in allmydata.check_results) and the code that renders
824 these objects into HTML (defined in allmydata.web.check_results). Only
825 the web-side objects were renamed.
826]
827[webapi.rst: de-tabify
828Brian Warner <warner@lothar.com>**20120402233205
829 Ignore-this: 6436168d9073b12e95ff410239bf133f
830]
831[servermap.py: oops, fix _done() condition, good catch by davidsarah
832Brian Warner <warner@lothar.com>**20120401221034
833 Ignore-this: a5b0f61d83606ebf3493917e69ad4edf
834]
835[doc: cross-link known_issues.rst and cautions.rst with one another
836zooko@zooko.com**20120401214039
837 Ignore-this: 3873f8807826cb21761cfe65a93955f8
838]
839[docs: FTP-and-SFTP.rst: recommend SFTP
840zooko@zooko.com**20120401212002
841 Ignore-this: 6459edd6dd0a62a82d3adc62c5656c63
842 
843 Add an explicit recommendation of SFTP over FTP. Separate the known issues of
844 FTP from SFTP. List "SFTP" first in all lists of the two. Use unicode bullet
845 points and prepend a utf-8 BOM. Use out-of-line rst hyperlinks.
846 
847]
848[interfaces.py: ensure that NoSuchChildError can be converted to str even when it is for a non-ASCII name. fixes #1483
849david-sarah@jacaranda.org**20110814225959
850 Ignore-this: d0069952ac7f5a13bdf5e957c7ae78a8
851]
852[misc/build_helpers/show-tool-versions.py: s/print_stderr/print_stdout/
853david-sarah@jacaranda.org**20120401022826
854 Ignore-this: c69d01081308a8144c9fdb34c4ab40b0
855]
856[bin/tahoe-script.template: fix the error message that is displayed when a runner script cannot be found. fixes #1488
857david-sarah@jacaranda.org**20110817222651
858 Ignore-this: b92c562e4da9adf63e642512c96eee89
859]
860[docs: quickstart: edits
861zooko@zooko.com**20120401015717
862 Ignore-this: cb56a1ffedb20d687133ad2ecfd7f8f7
863 
864 • use out-of-line links to avoid a warning from rst2html --verbose (fixes #1704)
865 • reflow to 77 fill-column and prepend utf-8 BOM (fixes #1703)
866 • recommend Python 2.7 (fixes #1702)
867 • remove link to wiki:AdvancedInstall (fixes #1701)
868 
869]
870[Spelling error in a comment.
871david-sarah@jacaranda.org**20120401013655
872 Ignore-this: 3a5a30be4be27bcfb1fecfd22ccf5327
873]
874[test_node.py: test that we tolerate a UTF-8 BOM at the start of tahoe.cfg, and can read UTF-8 option values. refs #1470
875david-sarah@jacaranda.org**20110808180552
876 Ignore-this: b4dd630857d192c02acaa6d8b163d5ca
877]
878[node.py: tolerate a UTF-8 BOM at the start of tahoe.cfg. fixes #1470
879david-sarah@jacaranda.org**20110808180204
880 Ignore-this: 9c859adce5668d7315d0d6e2ed9ddca7
881]
882[mutable/layout.py: improve confusing documentation of layout. fixes #1534
883david-sarah@jacaranda.org**20110914143947
884 Ignore-this: c5fbd3809ee3f7fc2b46cd23dad6b1c0
885]
886[setup: show-tool-versions: report cl only on windows, report buildslave, git, openssl, and lzip, but not 7za
887zooko@zooko.com**20120401005925
888 Ignore-this: 2f8d90893271d2f1c2d1185f95d95e86
889]
890[Document PYTHONPATH problem when running flogtool. refs #1693
891david-sarah@jacaranda.org**20120331223934
892 Ignore-this: 3edb13077119aaee76c1dcc46370e62
893]
894[Mutable repair: use new MODE_REPAIR to query all servers *and* get privkey
895Brian Warner <warner@lothar.com>**20120331183902
896 Ignore-this: e518c5372afe27331e09f8d70c63764d
897 
898 This fixes bug #1689. Repair was using MODE_READ to build the servermap,
899 which doesn't try hard enough to grab the privkey, and also doesn't guarantee
900 sending queries to all servers. This patch adds a new MODE_REPAIR which does
901 both, and does a separate, distinct mapupdate to start wth repair cycle,
902 instead of relying upon the (MODE_CHECK) mapupdate leftover from the
903 filecheck that triggered the repair.
904]
905[Add test for bug #1689: repairing empty file hits no-privkey assertion
906Brian Warner <warner@lothar.com>**20120331183902
907 Ignore-this: e84ead8eb2bfee9c65285b7f9a3a9237
908]
909[FTP-and-SFTP.rst: there were two more instances of 'rootcap'. Also made the wording tweak from ticket:1487#comment:4 . fixes #1487
910david-sarah@jacaranda.org**20120331023247
911 Ignore-this: 9ce9c37d9aa2b9629b14a001989d51b0
912]
913[test_ftp.py: fix a couple of unused imports. refs #1668
914david-sarah@jacaranda.org**20120331021725
915 Ignore-this: fc4f24fbc707efe86de9f35b782384ce
916]
917[FTP-and-SFTP.rst: directories containing mutable files should now be listable via FTP. refs #680
918david-sarah@jacaranda.org**20120331013730
919 Ignore-this: 78e507bd857623e78b32dd0e4da3c59
920]
921[ftpd file `size' attribute must be an integer
922Peter Le Bek <peter@hyperplex.net>**20120322131806
923 Ignore-this: bcf0047f19226e8dc00cb4995584761a
924]
925[unit test for ftpd LIST
926Peter Le Bek <peter@hyperplex.net>**20120330234139
927 Ignore-this: dfbb45a030be9840858df6047f21666c
928]
929[fix ftpd mtime retrieval
930Peter Le Bek <peter@hyperplex.net>**20120330234119
931 Ignore-this: 873cf8d1c28817d7e64565dda43a2ecb
932]
933[test_introducer.SystemTest: fix race condition
934Brian Warner <warner@lothar.com>**20120331002906
935 Ignore-this: d5cec29c09aca766634b6332c798436f
936 
937 SystemTest has a couple of different phases, separated by a poller which
938 waits for everything to be idle (all messages delivered, none in flight). It
939 does this by watching some internal "_debug_outstanding" counters in the
940 server and in each client, and waiting for them to hit zero.
941 
942 Just before the last phase, we replace the server with a new one (to make
943 sure clients re-send their messages properly). Unfortunately, the polling
944 function closed over the variable holding the original server, and didn't see
945 the replacement. It kept polling the old server, and failed to notice the
946 outstanding messages for the new server. The last phase of the test (check3)
947 was started too early, which failed (since some messages had not yet been
948 delivered), and then exploded in a flurry of dirty-reactor errors (because
949 some messages were delivered after test shutdown).
950 
951 This replaces the closed-over-variable with a "self.the_introducer", which
952 seems to fix the race.
953 
954 One additional place to look at in the future: the client
955 announcement-receive path (remote_announce) uses an eventually(). If the
956 message has been received and the eventual-send posted (but not yet executed)
957 when the poller sees it, the poller might erroneously conclude that the
958 client is idle and cause the same problem as above. To fix this, the poller
959 (probably all pollers) could be enhanced to do a flushEventualQueue before
960 querying the are-we-done-yet predicate function.
961]
962[Cosmetic formatting in docs.
963david-sarah@jacaranda.org**20120322220534
964 Ignore-this: 2e3ddb170f45035c4655ce25aaa09977
965]
966[Put SFTP before FTP in various docs. fixes #1692
967david-sarah@jacaranda.org**20120322220453
968 Ignore-this: 6759fbe5d58a965120b55cf3c1578970
969]
970[Correct a link to frontends/drop-upload.rst. fixes #1690
971david-sarah@jacaranda.org**20120322220118
972 Ignore-this: dafc6205151545e8095f908dd57c213
973]
974[Fix mutable status (mapupdate/retrieve/publish) to use serverids, not tubids
975Brian Warner <warner@lothar.com>**20120318000135
976 Ignore-this: 79354457b77fe2d8534fc0b792b6eb0c
977 
978 This still leaves immutable-publish results incorrectly using tubids instead
979 of serverids. That will need some more work, since it might change the Helper
980 interface.
981]
982[IServer.get_name(): remove v0- prefix from displayed server names
983Brian Warner <warner@lothar.com>**20120318000135
984 Ignore-this: f3dc25be3ecca5935a4320ca53b70cad
985 
986 Don't remove the prefix if it isn't there: that avoids the need to fix tests
987 which use a bogus key (usually all-zeros).
988]
989[Fix a missing comma in the last patch. refs #1295
990david-sarah@jacaranda.org**20120314235040
991 Ignore-this: 34327ffeabed65759ad511760f925e47
992]
993[Temporarily suppress the DeprecationWarning about IFinishableConsumer; it's irritating, but not in a way that is likely to make me fix the underlying issue (#1525) any sooner :-). refs #1295
994david-sarah@jacaranda.org**20120314234729
995 Ignore-this: 2ab43c7893ed305a9d40023ec176d179
996]
997[minor: hush pyflakes, move pycryptopp dep to unconditional section
998Brian Warner <warner@lothar.com>**20120314062035
999 Ignore-this: 786fae44ad106c7924f8c9644ee0e48d
1000 
1001 Also change Makefile's "pyflakes" rule to emit less output, so buildbot will
1002 count errors properly.
1003]
1004[Update find_links URLs in setup.cfg to https://tahoe-lafs.org. This is not just a doc change; look out for compatibility problems.
1005david-sarah@jacaranda.org**20120313203041
1006 Ignore-this: fd18113695c2a524972c389e8b52e2e8
1007]
1008[Minor updates to URLs.
1009david-sarah@jacaranda.org**20120313202853
1010 Ignore-this: 2e5719e8cf19d7be73fbcba98dc1e5dd
1011]
1012[Update more links from http: to https: in documentation and comments.
1013david-sarah@jacaranda.org**20120313202654
1014 Ignore-this: 2c11cef35639b101412c024896256529
1015]
1016[new introducer: signed extensible dictionary-based messages! refs #466
1017Brian Warner <warner@lothar.com>**20120314012432
1018 Ignore-this: e87de488a26c11711cf6978c9fb1175c
1019 
1020 This introduces new client and server halves to the Introducer (renaming the
1021 old one with a _V1 suffix). Both have fallbacks to accomodate talking to a
1022 different version: the publishing client switches on whether the server's
1023 .get_version() advertises V2 support, the server switches on which
1024 subscription method was invoked by the subscribing client.
1025 
1026 The V2 protocol sends a three-tuple of (serialized announcement dictionary,
1027 signature, pubkey) for each announcement. The V2 server dispatches messages
1028 to subscribers according to the service-name, and throws errors for invalid
1029 signatures, but does not otherwise examine the messages. The V2 receiver's
1030 subscription callback will receive a (serverid, ann_dict) pair. The
1031 'serverid' will be equal to the pubkey if all of the following are true:
1032 
1033   the originating client is V2, and was told a privkey to use
1034   the announcement went through a V2 server
1035   the signature is valid
1036 
1037 If not, 'serverid' will be equal to the tubid portion of the announced FURL,
1038 as was the case for V1 receivers.
1039 
1040 Servers will create a keypair if one does not exist yet, stored in
1041 private/server.privkey .
1042 
1043 The signed announcement dictionary puts the server FURL in a key named
1044 "anonymous-storage-FURL", which anticipates upcoming Accounting-related
1045 changes in the server advertisements. It also provides a key named
1046 "permutation-seed-base32" to tell clients what permutation seed to use. This
1047 is computed at startup, using tubid if there are existing shares, otherwise
1048 the pubkey, to retain share-order compatibility for existing servers.
1049]
1050['tahoe admin generate-keypair/derive-pubkey': add Ed25519 keypair commands
1051Brian Warner <warner@lothar.com>**20120314012432
1052 Ignore-this: 6dff9c61d97f746de338027b72cf1912
1053 
1054 Also add parse_privkey/parse_pubkey tools to util.keyutil
1055]
1056[bump pycryptopp dependency to >=0.6.0, to get ed25519 signatures
1057Brian Warner <warner@lothar.com>**20120314012432
1058 Ignore-this: 6c1cf12a30567880ab2cc53c4282be11
1059 
1060 This is for the upcoming #466 signed-introducer code.
1061]
1062[Update copyright notices. refs #1686
1063david-sarah@jacaranda.org**20120313205057
1064 Ignore-this: a6a4904001412248c4164f002b52f79a
1065]
1066[Make the link on the Welcome page to 'https://tahoe-lafs.org/', not 'http:'. Includes a test. fixes #1682
1067david-sarah@jacaranda.org**20120308231758
1068 Ignore-this: b639c3da453b95ee7edca8090ea1b9aa
1069]
1070[Update various references to allmydata.org or http://tahoe-lafs.org in comments, to https://tahoe-lafs.org. refs #1682
1071david-sarah@jacaranda.org**20120308231719
1072 Ignore-this: a71d00ea46af0a44e5c957df56d02adf
1073]
1074[Suppress a warning from win32eventreactor on Windows (patch v2). fixes #1681
1075david-sarah@jacaranda.org**20120227190317
1076 Ignore-this: c7efe1065d45a00caf182a1de812f4bb
1077]
1078[Add nickname/nodeid to storage-status web page. Closes #1204.
1079Brian Warner <warner@lothar.com>**20120313025736
1080 Ignore-this: 78e533e06c390221edd66c45ec96e34a
1081 
1082 Also add tahoe.css to the page, to make it look slightly prettier.
1083]
1084[add some quick tests of the introducer/web improvements
1085Brian Warner <warner@lothar.com>**20120312193536
1086 Ignore-this: 9e31f368b1dfa586ab6e3f17707d9ec
1087]
1088[introducer web page: add CSS styling, roughly match client Welcome page
1089Brian Warner <warner@lothar.com>**20120307022505
1090 Ignore-this: bfc450f394578a3463f31acc1019862
1091 
1092 Also add /static and the top-level /tahoe.css -type stuff to the introducer's
1093 web server.
1094]
1095[tahoe.css: fix #section typo, update welcome.xhtml to match
1096Brian Warner <warner@lothar.com>**20120307022241
1097 Ignore-this: 4e8a8382234aad017b093f8896b329d6
1098 
1099 The "#section" declaration (which matches id="section") should have been
1100 ".section" (which matches class="section").
1101 
1102 The welcome page has a feature that I actually liked: the little "This
1103 Client" sidebar sits just to the right of the start of the Controls block.
1104 Fixing .section broke that (the clear:both introduces a gap, forcing the
1105 Controls block to start strictly below the bottom of the This Client block).
1106 So I also removed class="section" from the Controls block to allow them to
1107 share the horizontal space again.
1108]
1109[make provisioning/reliability work in the new location, fix tests
1110Brian Warner <warner@lothar.com>**20120216222905
1111 Ignore-this: 8a2923a54ca224fe69fe404e819aaaac
1112]
1113[remove 'provisioning'/'reliability' from WUI, add to misc/operations_helpers
1114Brian Warner <warner@lothar.com>**20120216222905
1115 Ignore-this: 4090c8ac99f139393d9573b65cbbfe0c
1116 
1117 Also remove docs related to reliability/provisioning pages
1118]
1119[provisioning.py: update disk sizes and usage numbers
1120Brian Warner <warner@lothar.com>**20120213155708
1121 Ignore-this: e47ee282bfba4beb2598b227add5250a
1122]
1123[configuration.rst: another attempt to fix formatting of sample tahoe.cfg.
1124david-sarah@jacaranda.org**20120131000949
1125 Ignore-this: bb67b6c9bb191a1335eaadfe9594fa4f
1126]
1127[configuration.rst: remove the obsolete sizelimit option from the sample tahoe.cfg. Also fix the RST formatting of blank lines in the file.
1128david-sarah@jacaranda.org**20120131000643
1129 Ignore-this: 9c5327edf031d8578c19383d950b17b9
1130]
1131[Add a Python 3 blocker to setup.py, to display a better error message when it is run under Python 3.
1132david-sarah@jacaranda.org**20120127015525
1133 Ignore-this: 5f032794ecc8cd6c512a7ab9efffed2
1134]
1135[Ensure that verification proceeds and stops when appropriate.
1136Brian Warner <warner@lothar.com>**20120124205209
1137 Ignore-this: 88278bbd6a3b33cf3b286feaa162ad02
1138 
1139 The removed assertions are appropriate for a download that seeks to
1140 return plaintext to a caller; if we don't have at least k active remote
1141 shares, then we can't hope to do that. They're not appropriate for a
1142 verification operation; a user can try to verify a file that has fewer
1143 than k shares available, so that shouldn't be treated as an error.
1144 Instead, we proceed with fewer than k shares, and ensure that we
1145 terminate the download if we have no shares at all and we're verifying.
1146]
1147[Add test_verify_mdmf_all_bad_sharedata
1148Brian Warner <warner@lothar.com>**20120124205209
1149 Ignore-this: 52acb4f0256af764acb038f7c8344367
1150 
1151 test_verify_mdmf_all_bad_sharedata tests for the regression described
1152 in ticket 1648. In particular, it will trigger the misplaced assertion
1153 in the share activation code. It also tests to make sure that
1154 verification continues with fewer than k shares.
1155]
1156[Added clarification on how interface= works
1157Brian Warner <warner@lothar.com>**20120124203821
1158 Ignore-this: 57f86d178c8e4f3c62d15bf99dec7d0d
1159]
1160[FTP-and-SFTP.rst: minor edits
1161Brian Warner <warner@lothar.com>**20120124203654
1162 Ignore-this: ec21fadb85cf7b3192d32b02c03c3656
1163]
1164[Updated accounts.url directive per warner's suggestions
1165Brian Warner <warner@lothar.com>**20120124203126
1166 Ignore-this: 9297ec6406e11d4e1fe24ba3a06725e3
1167]
1168[Added information on accounts.url directive
1169Brian Warner <warner@lothar.com>**20120124203126
1170 Ignore-this: 6d6142418eabdad789a2fc68f26b3ba1
1171]
1172[docs: an extra newline to separate utf-8 BOF from comment for the sake of trac's rst renderer
1173zooko@zooko.com**20120122212002
1174 Ignore-this: 5c6d0dbfa1430681fa00494937537956
1175]
1176[docs: a newline between the utf-8 BOF and the comment in order to prevent trac from misrendering the comment
1177zooko@zooko.com**20120122211856
1178 Ignore-this: 5e92cb88ba46b82227338522b834b90d
1179 sheesh
1180]
1181[docs: a comment to inform the (human) reader about encoding and to prevent someone from moving the title up to where it will interact with the utf-8 BOM and cause trac to mis-render the title
1182zooko@zooko.com**20120122211731
1183 Ignore-this: f7912a13ffba60408ec901a9586ce8a4
1184]
1185[docs: insert another newline between utf-8 BOF and title
1186zooko@zooko.com**20120122211427
1187 Ignore-this: 1b3861ef7d4531acfa61fac31e14fe98
1188]
1189[docs: insert newline after utf-8 BOF and before restructuredtext title
1190zooko@zooko.com**20120122182127
1191 Ignore-this: f947afe5bdfc9f44ba9bf7f0e585da7c
1192]
1193[docs: remove utf-8 "BOM" which confuses trac's rst renderer
1194zooko@zooko.com**20120122140052
1195 Ignore-this: ba58c59a314f23c65de5443bd7b6ffcb
1196]
1197[docs: try again to change RestructuredText titles to a format that trac will render
1198zooko@zooko.com**20120122135613
1199 Ignore-this: 588bbb627a95cd8317c809567cfa3e78
1200]
1201[docs: backdoors.rst: fix title formatting
1202zooko@zooko.com**20120122135125
1203 Ignore-this: 5bf980c1a8703ee353cd747ae343176a
1204]
1205[docs: backdoors.rst: stop using embedded URIs and tweak title so that trac will render it correctly; reflow to fill-column 77; M-x whitespace-cleanup
1206zooko@zooko.com**20120122134319
1207 Ignore-this: e1b5b3d2809040cfd7f13bb88ee8313d
1208]
1209[update release process: git, not darcs, etc
1210Brian Warner <warner@lothar.com>**20120113071257
1211 Ignore-this: 2eaa1f0e93dc545989bb1e62b2446e1e
1212]
1213[prepare to Org-ify how_to_make_a_tahoe-lafs_release: rename the file
1214Brian Warner <warner@lothar.com>**20120113070153
1215 Ignore-this: d9bb83dfd6c3b4c0ca0efd2adacdf63c
1216]
1217[.gitignore: ignore generated test-coverage files too
1218Brian Warner <warner@lothar.com>**20120113065629
1219 Ignore-this: 4411c7d620f5865b8c4dedef7e5a8c33
1220]
1221[merge relnotes, quickstart.rst from 1.9.1 release
1222Brian Warner <warner@lothar.com>**20120112232420
1223 Ignore-this: 6b535bb1a3bd5ea87ee12cc6b17eeb5c
1224]
1225[retrieve.py: unconditionally check share-hash-tree. Fixes #1654.
1226Brian Warner <warner@lothar.com>**20120112213553
1227 Ignore-this: 7ddc903a382b52bc014262b3b4099165
1228 
1229 Add Kevan's unit test, update known_issues.rst
1230]
1231[.gitignore: also ignore tahoe-deps and .tgz, to fix 'make tarballs'
1232Brian Warner <warner@lothar.com>**20120112210925
1233 Ignore-this: e8a7d942f123ee6bf4f2966ddc2742a3
1234 
1235 Otherwise, the get-version-from-git code thinks the tree is dirty, and
1236 creates SUMO tarballs with -dirty in the name.
1237]
1238[Makefile: fix 'make-version' to use git-or-darcs, not just darcs
1239Brian Warner <warner@lothar.com>**20120112210654
1240 Ignore-this: ae32660458b5ab036ab98f0d1cf4e414
1241]
1242[_auto_deps.py: don't allow pycrypto 2.0.1. fixes #1631
1243david-sarah@jacaranda.org**20120110195758
1244 Ignore-this: de409a745c93a78b095dc72edd13a15d
1245]
1246[MANIFEST.in: make git-based 'setup.py sdist' match darcs
1247Brian Warner <warner@lothar.com>**20120109234637
1248 Ignore-this: 92bf7d679e9d5696994efe39c40ae216
1249 
1250 Previously, tarballs generated from a git tree were lacking a lot of
1251 important non-code files, like docs/
1252]
1253[restore .gitignore, stop .darcs-boringfile it
1254warner@lothar.com**20120109025243
1255 Ignore-this: b37efcdab8662fe85660d68e3662b4b9
1256]
1257[remove setuptools_darcs.egg
1258warner@lothar.com**20120108225545
1259 Ignore-this: 39711cf7a9856acd5a136038d58ca5ff
1260]
1261[fix bundled data under git, remove setuptools_darcs
1262Brian Warner <warner@lothar.com>**20120108221250
1263 Ignore-this: ebfc0b267961523edd7e26c761b2554f
1264 
1265 This uses explicitly enumerated packages= and package_data= arguments to
1266 setup(), rather than relying upon the convenient (but darcs-specific)
1267 functions which would determine these values by asking the revision-control
1268 system.
1269 
1270 Note that darcsver is still used, when building from a darcs tree.
1271]
1272[mutable/retrieve.py: clean up control flow to avoid dropping errors
1273Brian Warner <warner@lothar.com>**20120108221248
1274 Ignore-this: 4e991bdf6399439d2cee3d743814a327
1275 
1276 * replace DeferredList with gatherResults, simplify result handling
1277 * use BadShareError to signal recoverable problems in either fetch or
1278   validate, catch after _validate_block
1279 * _validate_block is thus not responsible for noticing fetch problems
1280 * rename _validation_or_decoding_failed() to _handle_bad_share()
1281 * _get_needed_hashes() returns two Deferreds, instead of a hard-to-unpack
1282   DeferredList
1283]
1284[mutable/layout.py: raise BadShareError instead of assert()
1285Brian Warner <warner@lothar.com>**20120108221247
1286 Ignore-this: 129891a807315f657b80576025135df8
1287]
1288[mutable: don't tell server about corruption unless it's really CorruptShareError
1289Brian Warner <warner@lothar.com>**20120108221245
1290 Ignore-this: 90da01af1008477c45d333a0f74f1c5b
1291]
1292[mutable: simplify Retrieve._process_segment() to use a gatherDeferred
1293Brian Warner <warner@lothar.com>**20120108221244
1294 Ignore-this: cfc7a56414889d02bffd747f1abad8ef
1295]
1296[Retrieve.decode(): simplify setup of DeferredList-like argument
1297Brian Warner <warner@lothar.com>**20120108221240
1298 Ignore-this: c92d377bf4d65251240e59c8db5452af
1299 
1300 make it more obviously match the expectations of _decode_blocks() and
1301 _maybe_decode_and_decrypt_segment()
1302]
1303[mutable: add comments about the tricky DeferredList structures in retrieve
1304Brian Warner <warner@lothar.com>**20120108221238
1305 Ignore-this: da47db692fbdf11a3ce01a952a60d1a0
1306]
1307[add test-git-ignore.py, to port the 'clean' buildbot test to git
1308Brian Warner <warner@lothar.com>**20120108221232
1309 Ignore-this: 442efa1eacc27b7ae2690645ed997894
1310 
1311 add .gitignore to match .darcs-boringfile, mostly
1312]
1313[Use a private/drop_upload_dircap file instead of the [drop_upload]upload.dircap option in tahoe.cfg. Fail if the upload.dircap option is used, or options are missing. Also updates tests and docs. fixes #1593
1314david-sarah@jacaranda.org**20111120232426
1315 Ignore-this: d4ea9154e98902c5de055b6de23c48f9
1316]
1317[test_mutable: don't use 75 shares (slow), now that the bug is fixed
1318Brian Warner <warner@lothar.com>**20111228223819
1319 Ignore-this: 930f1a24ebe9ed2ab25e4b2a16e36352
1320 
1321 I missed this part of Kevan's fix-1628.darcs.2.patch .
1322]
1323[mutable publish: fix not-enough-shares detection. Refs #1628.
1324Brian Warner <warner@lothar.com>**20111228055018
1325 Ignore-this: 23db08d8d630268e208e1755509adf92
1326 
1327 This should match the "fix-1628.darcs.2.patch" attachment on that ticket.
1328]
1329[mutable publish: track multiple servers-per-share. Fixes some of #1628.
1330Brian Warner <warner@lothar.com>**20111228053358
1331 Ignore-this: 6e8cb92e70273b81098f73ebf23164bd
1332 
1333 The remaining work is to write additional tests.
1334 
1335 src/allmydata/test/no_network.py:
1336 
1337  This supports tests in which servers leave the grid only to return with
1338  their shares intact at a later time.
1339 
1340 src/allmydata/test/test_mutable.py:
1341 
1342  The UCWEs in the incident reports associated with #1628 all seem to be
1343  associated with shares that the servermap knows about, but which aren't
1344  accounted for during the publish process for whatever reason. Specifically,
1345  it looks like the publisher is only capable of keeping track of a single
1346  storage server for a given share. This makes the repair process worse than
1347  it was pre-MDMF at updating all of the shares of a particular file to the
1348  newest version, and can also cause spurious UCWEs. This test simulates such
1349  a layout and fails if an UCWE is thrown. We need to write another test to
1350  ensure that all copies of a share are updated to the latest version (or
1351  alter this test to do that), so that the test suite doesn't pass unless both
1352  regressions are fixed.
1353 
1354  We want the publisher to follow the existing share placement when uploading
1355  a new version of a mutable file, and we don't want this test to pass unless
1356  it does.
1357 
1358 src/allmydata/mutable/publish.py:
1359 
1360  Before this commit, the publisher only kept track of a single writer for
1361  each share. This is insufficient to handle updates in which a single share
1362  may live on multiple servers. In the best case, an update will only update
1363  one of the existing shares instead of all of them. In some cases, the update
1364  will encounter the existing shares when publishing some other share,
1365  interpret it as a sign of an uncoordinated update, and fail. Keeping track
1366  of all of the writers helps ensure that all existing shares are updated, and
1367  helps avoid spurious uncoordinated write errors.
1368]
1369[docs: how_to_make_a_tahoe-lafs_release.rst add Google+ page to publicity list, change to cute unicode checkboxes
1370zooko@zooko.com**20111226151905
1371 Ignore-this: c7c1e67761df48fa11c0dad1847c2d8
1372]
1373[doc: about.rst: use unicode emdash, use non-embedded URIs, add clarificaiton of when a file gets its mutable-or-immutable nature
1374zooko@zooko.com**20111206171908
1375 Ignore-this: 61bc3f1582c68dcc9867da964fc9bb3a
1376 embedded URIs, although documented here:
1377 http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#embedded-uris
1378 generate messages like this from rst2html --verbose:
1379 
1380 quickstart.rst:3: (INFO/1) Duplicate explicit target name: "the tahoe-dev mailing list".
1381 
1382 Also this patch prepends a "utf-8 BOM" to the beginning of the file.
1383]
1384[minor cleanup: remove trailing spaces in misc/
1385Brian Warner <warner@lothar.com>**20111218201841
1386 Ignore-this: 69a8904c17d8fd930442d00e24b7b188
1387]
1388[Tests for ref #1592.
1389david-sarah@jacaranda.org**20111217043130
1390 Ignore-this: a6713500ebe2d686581c6743b8a88f60
1391]
1392[test_web.py cleanup: use failUnlessIn/failIfIn in preference to 'in' operator.
1393david-sarah@jacaranda.org**20111217042710
1394 Ignore-this: c351f4b1d162eca545ba657dc3c70c19
1395]
1396[Marcus Wanner's favicon patch. fixes #1592
1397david-sarah@jacaranda.org**20111217033201
1398 Ignore-this: 3528c920379fe0d157441dafe9a7c5a8
1399]
1400[setup.py: stop putting pyutil.version_class/etc in _version.py
1401Brian Warner <warner@lothar.com>**20111205055049
1402 Ignore-this: 926fa9a8a34a04f24ee6e006423e9c1
1403 
1404 allmydata.__version__ can just be a string, it doesn't need to be an instance
1405 of some fancy NormalizedVersion class. Everything inside Tahoe uses
1406 str(__version__) anyways.
1407 
1408 Also add .dev0 when a git tree is dirty.
1409 
1410 Closes #1466
1411]
1412[setup.py: get version from git or darcs
1413Brian Warner <warner@lothar.com>**20111205044001
1414 Ignore-this: 5a406b33000446d85edc722298391220
1415 
1416 This replaces the setup.cfg aliases that run "darcsver" before each major
1417 command with the new "update_version". update_version is defined in setup.py,
1418 and tries to get a version string from either darcs or git (or leaves the
1419 existing _version.py alone if neither VC metadata is available).
1420 
1421 Also clean up a tiny typo in verlib.py that messed up syntax hilighting.
1422]
1423[docs/known_issues.rst: describe when the unauthorized access attack is known to be possible, and fix a link.
1424david-sarah@jacaranda.org**20111118002013
1425 Ignore-this: d89b1f1040a0a7ee0bde893d23612049
1426]
1427[more tiny buildbot-testing whitespace changes
1428warner@lothar.com**20111118002041
1429 Ignore-this: e816e2a5ab939e2f7a89ef12b8a157d8
1430]
1431[more tiny buildbot-testing whitespace changes
1432warner@lothar.com**20111118001828
1433 Ignore-this: 57bb52cba83ea9a19728ba0a8ffadb69
1434]
1435[tiny change to exercise the buildbot hook
1436warner@lothar.com**20111118001511
1437 Ignore-this: 7220b7790b39f19f9721d9e93b755030
1438]
1439[Strengthen description of unauthorized access attack in known_issues.rst.
1440david-sarah@jacaranda.org**20111118000030
1441 Ignore-this: e2f68f621fe666b6201542623aa4d182
1442]
1443[remove remaining uses of nevow's "formless" module
1444Brian Warner <warner@lothar.com>**20111117225423
1445 Ignore-this: a128dea91a1c63b3bbefa34729344d69
1446 
1447 We're slowly moving away from Nevow, and marcusw's previous patch removed
1448 uses of the formless CSS file, so now we can stop testing that nevow can find
1449 that file, and remove the lingering unused "import formless" call.
1450]
1451[1585-webui.darcs.patch
1452Marcus Wanner <marcus@wanners.net>**20111117214923
1453 Ignore-this: 23cf2a06c545be5f821c071d652178ee
1454]
1455[Remove duplicate tahoe_css links from manifest.xhtml and rename-form.xhtml
1456Brian Warner <warner@lothar.com>**20111116224225
1457 Ignore-this: 12024fff17964607799928928b9aadf3
1458 
1459 They were probably meant to be links to webform_css, but we aren't really
1460 using Nevow's form-generation code anyways, so they can just be removed.
1461 Thanks to 'marcusw' for the catch.
1462]
1463[iputil: handle openbsd5 (just like openbsd4)
1464Brian Warner <warner@lothar.com>**20111115220423
1465 Ignore-this: 64b28bd2fd06eb5230ea41d91540dd05
1466 
1467 Patch by 'sickness'. Closes #1584
1468]
1469[Makefile count-lines: let it work on OS-X (-l not --lines), add XXX
1470Brian Warner <warner@lothar.com>**20111109184227
1471 Ignore-this: 204ace1dadc9ed27543c62965b4e6757
1472 
1473 OS-X's simple-minded /usr/bin/wc doesn't understand --lines, but everyone
1474 understands -l .
1475]
1476[setup.py: umask=022 for 'sdist', to avoid depending on environment
1477Brian Warner <warner@lothar.com>**20111109183632
1478 Ignore-this: acd5db88ba8f1972d618b14f9e5b803c
1479 
1480 The new tarball-building buildslave had a bogus umask set, causing the 1.9.0
1481 tarballs to be non-other-user-readable (go-rwx), which is a hassle for
1482 packaging. (The umask was correct on the old buildslave, but it was moved to
1483 a new host shortly before the release). This should make sure tarballs are
1484 correct despite the host's setting.
1485 
1486 Note to others: processes run under twistd get umask=077 unless you arrange
1487 otherwise.
1488]
1489[_auto_deps.py: blacklist PyCrypto 2.4.
1490david-sarah@jacaranda.org**20111105022457
1491 Ignore-this: 876cb24bc71589e735f48bf449cad81e
1492]
1493[check-miscaptures.py: report the number of files that were not analysed due to syntax errors (and don't count them in the number of suspicious captures). refs #1555
1494david-sarah@jacaranda.org**20111009050301
1495 Ignore-this: 62ee03f4b8a96c292e75c097ad87d52e
1496]
1497[check-miscaptures.py: handle corner cases around default arguments correctly. Also make a minor optimization when there are no assigned variables to consider. refs #1555
1498david-sarah@jacaranda.org**20111009045023
1499 Ignore-this: f49ece515620081da1d745ae6da19d21
1500]
1501[check-miscaptures.py: Python doesn't really have declarations; report the topmost assignment. refs #1555
1502david-sarah@jacaranda.org**20111009044800
1503 Ignore-this: 4905c9dfe7726f433333e216a6760a4b
1504]
1505[check-miscaptures.py: handle destructuring function arguments correctly. refs #1555
1506david-sarah@jacaranda.org**20111009044710
1507 Ignore-this: f9de7d95e94446507a206c88d3f98a23
1508]
1509[check-miscaptures.py: check while loops and list comprehensions as well as for loops. Also fix a pyflakes warning. refs #1555
1510david-sarah@jacaranda.org**20111009044022
1511 Ignore-this: 6526e4e315ca6461b1fbc2da5568e444
1512]
1513[Add misc/coding_tools/check-miscaptures.py to detect incorrect captures of variables declared in a for loop, and a 'make check-miscaptures' Makefile target to run it. (It is also run by 'make code-checks'.) This is a rewritten version that reports much fewer false positives, by determining captured variables more accurately. fixes #1555
1514david-sarah@jacaranda.org**20111007074121
1515 Ignore-this: 51318e9678d132c374ea557ab955e79e
1516]
1517[Fix pyflakes warnings in misc/ directories other than misc/build_helpers. refs #1557
1518david-sarah@jacaranda.org**20111007033031
1519 Ignore-this: 7daf5862469732d8cabc355266622b74
1520]
1521[Makefile: include misc/ directories other than misc/build_helpers in SOURCES. refs #1557
1522david-sarah@jacaranda.org**20111007032958
1523 Ignore-this: 31376ec01401df7972e83341dc65aa05
1524]
1525[show-tool-versions: tolerate missing setuptools
1526Brian Warner <warner@lothar.com>**20111101080010
1527 Ignore-this: 72d4e440565273992beb4f010cbca699
1528]
1529[show-tool-versions.py: condense output, hide file-not-found exceptions
1530Brian Warner <warner@lothar.com>**20111101074532
1531 Ignore-this: a15381a76077ef46a74a4ac40c9ae956
1532]
1533[relnotes.txt: fix footnotes
1534Brian Warner <warner@lothar.com>**20111101071935
1535 Ignore-this: 668c1bd8618e21beed9bc6b23f048189
1536]
1537[Rewrite download-status-timeline visualizer ('viz') with d3.js
1538Brian Warner <warner@lothar.com>**20111101061821
1539 Ignore-this: 6149b027bbae52c559ef5a8167240cab
1540 
1541 * use d3.js v2.4.6
1542 * add a "toggle misc events" button, to get hash/bitmap-checking details
1543 * only draw data that's on screen, for speed
1544 * add fragment-arg to fetch timeline data.json from somewhere else
1545]
1546[IServer refactoring: pass IServer instances around, instead of peerids
1547Brian Warner <warner@lothar.com>**20111101040319
1548 Ignore-this: 35e4698a0273a0311fe0ccedcc7881b5
1549 
1550 refs #1363
1551 
1552 This collapses 88 small incremental changes (each of which passes all tests)
1553 into one big patch. The development process for the long path started with
1554 adding some temporary scaffolding, changing one method at a time, then
1555 removing the scaffolding. The individual pieces are as follows, in reverse
1556 chronological order (the first patch is at the end of this comment):
1557 
1558  commit 9bbe4174fd0d98a6cf47a8ef96e85d9ef34b2f9a
1559  Author: Brian Warner <warner@lothar.com>
1560  Date:   Tue Oct 4 16:05:00 2011 -0400
1561 
1562      immutable/downloader/status.py: correct comment
1563 
1564   src/allmydata/immutable/downloader/status.py |    2 +-
1565   1 files changed, 1 insertions(+), 1 deletions(-)
1566 
1567  commit 72146a7c7c91eac2f7c3ceb801eb7a1721376889
1568  Author: Brian Warner <warner@lothar.com>
1569  Date:   Tue Oct 4 15:46:20 2011 -0400
1570 
1571      remove temporary ServerMap._storage_broker
1572 
1573   src/allmydata/mutable/checker.py   |    2 +-
1574   src/allmydata/mutable/filenode.py  |    2 +-
1575   src/allmydata/mutable/publish.py   |    2 +-
1576   src/allmydata/mutable/servermap.py |    5 ++---
1577   src/allmydata/test/test_mutable.py |    8 ++++----
1578   5 files changed, 9 insertions(+), 10 deletions(-)
1579 
1580  commit d703096b41632c47d76414b12672e076a422ff5c
1581  Author: Brian Warner <warner@lothar.com>
1582  Date:   Tue Oct 4 15:37:05 2011 -0400
1583 
1584      remove temporary storage_broker.get_server_for_id()
1585 
1586   src/allmydata/storage_client.py  |    3 ---
1587   src/allmydata/test/no_network.py |   13 -------------
1588   2 files changed, 0 insertions(+), 16 deletions(-)
1589 
1590  commit 620cc5d80882ef6f7decfd26af8a6c7c1ddf80d1
1591  Author: Brian Warner <warner@lothar.com>
1592  Date:   Tue Oct 4 12:50:06 2011 -0400
1593 
1594      API of Retrieve._try_to_validate_privkey(), trying to remove reader.server
1595 
1596   src/allmydata/mutable/retrieve.py |   10 +++++-----
1597   1 files changed, 5 insertions(+), 5 deletions(-)
1598 
1599  commit 92f43f856f4a8b36c207d1b190ed8699b5a4ecb4
1600  Author: Brian Warner <warner@lothar.com>
1601  Date:   Tue Oct 4 12:48:08 2011 -0400
1602 
1603      API of Retrieve._validate_block(), trying to remove reader.server
1604 
1605   src/allmydata/mutable/retrieve.py |   14 +++++++-------
1606   1 files changed, 7 insertions(+), 7 deletions(-)
1607 
1608  commit 572d5070761861a2190349d1ed8d85dbc25698a5
1609  Author: Brian Warner <warner@lothar.com>
1610  Date:   Tue Oct 4 12:36:58 2011 -0400
1611 
1612      API of Retrieve._mark_bad_share(), trying to remove reader.server
1613 
1614   src/allmydata/mutable/retrieve.py |   21 +++++++++------------
1615   1 files changed, 9 insertions(+), 12 deletions(-)
1616 
1617  commit a793ff00c0de1e2eec7b46288fdf388c7a2bec89
1618  Author: Brian Warner <warner@lothar.com>
1619  Date:   Tue Oct 4 12:06:13 2011 -0400
1620 
1621      remove now-unused get_rref_for_serverid()
1622 
1623   src/allmydata/mutable/servermap.py |    3 ---
1624   1 files changed, 0 insertions(+), 3 deletions(-)
1625 
1626  commit 1b9827cc9366bf90b93297fdd6832f2ad0480ce7
1627  Author: Brian Warner <warner@lothar.com>
1628  Date:   Tue Oct 4 12:03:09 2011 -0400
1629 
1630      Retrieve: stop adding .serverid attributes to readers
1631 
1632   src/allmydata/mutable/retrieve.py |    1 -
1633   1 files changed, 0 insertions(+), 1 deletions(-)
1634 
1635  commit 5d4e9d491b19e49d2e443a1dfff2c672842c36ef
1636  Author: Brian Warner <warner@lothar.com>
1637  Date:   Tue Oct 4 12:03:34 2011 -0400
1638 
1639      return value of Retrieve(verify=True)
1640 
1641   src/allmydata/mutable/checker.py  |   11 ++++++-----
1642   src/allmydata/mutable/retrieve.py |    3 +--
1643   2 files changed, 7 insertions(+), 7 deletions(-)
1644 
1645  commit e9ab7978c384e1f677cb7779dc449b1044face82
1646  Author: Brian Warner <warner@lothar.com>
1647  Date:   Tue Oct 4 11:54:23 2011 -0400
1648 
1649      Retrieve._bad_shares (but not return value, used by Verifier)
1650 
1651   src/allmydata/mutable/retrieve.py |    7 ++++---
1652   1 files changed, 4 insertions(+), 3 deletions(-)
1653 
1654  commit 2d91926de233ec5c881f30e36b4a30ad92ab42a9
1655  Author: Brian Warner <warner@lothar.com>
1656  Date:   Tue Oct 4 11:51:23 2011 -0400
1657 
1658      Publish: stop adding .serverid attributes to writers
1659 
1660   src/allmydata/mutable/publish.py |    9 ++-------
1661   1 files changed, 2 insertions(+), 7 deletions(-)
1662 
1663  commit 47c7a0105dec7cbf4f7e0a3ce800bbb85b15df4a
1664  Author: Brian Warner <warner@lothar.com>
1665  Date:   Tue Oct 4 11:56:33 2011 -0400
1666 
1667      API of get_write_enabler()
1668 
1669   src/allmydata/mutable/filenode.py |    7 ++++---
1670   src/allmydata/mutable/publish.py  |    4 ++--
1671   src/allmydata/test/no_network.py  |    3 +++
1672   3 files changed, 9 insertions(+), 5 deletions(-)
1673 
1674  commit 9196a5c6590fdbfd660325ea8358b345887d3db0
1675  Author: Brian Warner <warner@lothar.com>
1676  Date:   Tue Oct 4 11:46:24 2011 -0400
1677 
1678      API of get_(renewal|cancel)_secret()
1679 
1680   src/allmydata/mutable/filenode.py  |   14 ++++++++------
1681   src/allmydata/mutable/publish.py   |    8 ++++----
1682   src/allmydata/mutable/servermap.py |    5 ++---
1683   3 files changed, 14 insertions(+), 13 deletions(-)
1684 
1685  commit de7c1552f8c163eff5b6d820b5fb3b21c1b47cb5
1686  Author: Brian Warner <warner@lothar.com>
1687  Date:   Tue Oct 4 11:41:52 2011 -0400
1688 
1689      API of CorruptShareError. Also comment out some related+unused test_web.py code
1690 
1691   src/allmydata/mutable/common.py    |   13 +++++--------
1692   src/allmydata/mutable/retrieve.py  |   10 +++++-----
1693   src/allmydata/mutable/servermap.py |    8 +++-----
1694   src/allmydata/test/common.py       |   13 ++++++++-----
1695   4 files changed, 21 insertions(+), 23 deletions(-)
1696 
1697  commit 2c1c314046b620c16f1e66d030c150d768b7d01e
1698  Author: Brian Warner <warner@lothar.com>
1699  Date:   Tue Oct 4 12:01:46 2011 -0400
1700 
1701      API of ServerMap.mark_bad_share()
1702 
1703   src/allmydata/mutable/publish.py   |    2 +-
1704   src/allmydata/mutable/retrieve.py  |    6 +++---
1705   src/allmydata/mutable/servermap.py |    6 ++----
1706   src/allmydata/test/test_mutable.py |    3 +--
1707   4 files changed, 7 insertions(+), 10 deletions(-)
1708 
1709  commit 1bed349030779fd0c378ae4e821384f953c6f6ff
1710  Author: Brian Warner <warner@lothar.com>
1711  Date:   Tue Oct 4 11:11:17 2011 -0400
1712 
1713      API+name of ServerMap.shares_on_server() : only for tests, so debug_ prefix
1714 
1715   src/allmydata/mutable/servermap.py |    7 ++-----
1716   src/allmydata/test/test_mutable.py |    6 +++---
1717   2 files changed, 5 insertions(+), 8 deletions(-)
1718 
1719  commit 2d32e448677d6b818692e801045d4115b29abf21
1720  Author: Brian Warner <warner@lothar.com>
1721  Date:   Tue Oct 4 11:07:10 2011 -0400
1722 
1723      API of ServerMap.all_servers_for_version()
1724 
1725   src/allmydata/mutable/servermap.py |    4 ++--
1726   1 files changed, 2 insertions(+), 2 deletions(-)
1727 
1728  commit 48f3204d1889c3e7179578125c4bdef515af3d6a
1729  Author: Brian Warner <warner@lothar.com>
1730  Date:   Tue Oct 4 11:04:50 2011 -0400
1731 
1732      internals of ServerMap methods that use make_versionmap(), remove temp copy
1733 
1734   src/allmydata/mutable/servermap.py |   28 +++++++++----------------
1735   1 files changed, 10 insertions(+), 18 deletions(-)
1736 
1737  commit 5c3da77b6c777a145bd5ddfaa4db849dc9495548
1738  Author: Brian Warner <warner@lothar.com>
1739  Date:   Tue Oct 4 11:01:28 2011 -0400
1740 
1741      API of ServerMap.make_versionmap()
1742 
1743   src/allmydata/mutable/checker.py   |    4 ++--
1744   src/allmydata/mutable/retrieve.py  |    5 ++---
1745   src/allmydata/mutable/servermap.py |    4 ++--
1746   src/allmydata/test/test_mutable.py |    7 ++++---
1747   4 files changed, 10 insertions(+), 10 deletions(-)
1748 
1749  commit b6882ece49afb4c507d118af2db346fa329209dc
1750  Author: Brian Warner <warner@lothar.com>
1751  Date:   Tue Oct 4 10:53:38 2011 -0400
1752 
1753      make a copy of ServerMap.make_versionmap() (_make_versionmap2) for internal use
1754 
1755   src/allmydata/mutable/servermap.py |   18 +++++++++++++-----
1756   1 files changed, 13 insertions(+), 5 deletions(-)
1757 
1758  commit 963f8e63faf32b950eb1b8103cd2ff16fe8f0151
1759  Author: Brian Warner <warner@lothar.com>
1760  Date:   Tue Oct 4 00:45:58 2011 -0400
1761 
1762      API of RetrieveStatus.add_problem()
1763 
1764   src/allmydata/mutable/retrieve.py |    5 +++--
1765   1 files changed, 3 insertions(+), 2 deletions(-)
1766 
1767  commit 4976d29ffae565a048851601c29013bbae2976d8
1768  Author: Brian Warner <warner@lothar.com>
1769  Date:   Tue Oct 4 00:45:05 2011 -0400
1770 
1771      API of RetrieveStatus.add_fetch_timing()
1772 
1773   src/allmydata/mutable/retrieve.py |    5 +++--
1774   1 files changed, 3 insertions(+), 2 deletions(-)
1775 
1776  commit d057d3bbba72663ee148a8b916bc2d52be2e3982
1777  Author: Brian Warner <warner@lothar.com>
1778  Date:   Tue Oct 4 00:44:04 2011 -0400
1779 
1780      API of Retrieve.notify_server_corruption()
1781 
1782   src/allmydata/mutable/retrieve.py |    6 +++---
1783   1 files changed, 3 insertions(+), 3 deletions(-)
1784 
1785  commit 8a2a81e46671c860610e0e96d6add1a57551f22d
1786  Author: Brian Warner <warner@lothar.com>
1787  Date:   Tue Oct 4 00:42:32 2011 -0400
1788 
1789      remove unused _outstanding_queries
1790 
1791   src/allmydata/mutable/retrieve.py |    1 -
1792   1 files changed, 0 insertions(+), 1 deletions(-)
1793 
1794  commit 56d12cc9968d03ccd53764455c671122c4f391d1
1795  Author: Brian Warner <warner@lothar.com>
1796  Date:   Tue Oct 4 00:40:57 2011 -0400
1797 
1798      change Retrieve.remaining_sharemap
1799 
1800   src/allmydata/mutable/retrieve.py |    4 ++--
1801   1 files changed, 2 insertions(+), 2 deletions(-)
1802 
1803  commit 4f0b7af4821f43290bfc70f2b1fc30149ad81281
1804  Author: Brian Warner <warner@lothar.com>
1805  Date:   Tue Oct 4 10:40:18 2011 -0400
1806 
1807      accessor for PublishStatus._problems
1808 
1809   src/allmydata/mutable/publish.py |    4 +++-
1810   src/allmydata/web/status.py      |    2 +-
1811   2 files changed, 4 insertions(+), 2 deletions(-)
1812 
1813  commit 627087cf66d0b8cc519f4d551a967a7bd9b6a741
1814  Author: Brian Warner <warner@lothar.com>
1815  Date:   Tue Oct 4 10:36:39 2011 -0400
1816 
1817      accessor for RetrieveStatus._problems
1818 
1819   src/allmydata/mutable/retrieve.py |    8 ++++++--
1820   src/allmydata/web/status.py       |    2 +-
1821   2 files changed, 7 insertions(+), 3 deletions(-)
1822 
1823  commit ca7dea81f03801b1c7353fc00ecba689268109cf
1824  Author: Brian Warner <warner@lothar.com>
1825  Date:   Tue Oct 4 00:35:32 2011 -0400
1826 
1827      add .server to "reader", so we can get at it later
1828 
1829   src/allmydata/mutable/retrieve.py |    5 +++--
1830   1 files changed, 3 insertions(+), 2 deletions(-)
1831 
1832  commit 6ef516e24908ec195af084a7550d1921a5e983b0
1833  Author: Brian Warner <warner@lothar.com>
1834  Date:   Tue Oct 4 00:32:32 2011 -0400
1835 
1836      temporarily give Retrieve a _storage_broker, so it can map serverids to servers
1837 
1838   src/allmydata/mutable/checker.py   |    3 ++-
1839   src/allmydata/mutable/filenode.py  |    6 ++++--
1840   src/allmydata/mutable/retrieve.py  |    5 +++--
1841   src/allmydata/test/test_mutable.py |    4 ++--
1842   4 files changed, 11 insertions(+), 7 deletions(-)
1843 
1844  commit afe08e4dd3f4ff9ff7e8a2a8d28b181e3625bcc9
1845  Author: Brian Warner <warner@lothar.com>
1846  Date:   Tue Oct 4 00:21:51 2011 -0400
1847 
1848      mutable/retrieve.py: s/peer/server/
1849 
1850   src/allmydata/mutable/retrieve.py  |   82 +++++++++++++-------------
1851   src/allmydata/test/test_mutable.py |    6 +-
1852   2 files changed, 44 insertions(+), 44 deletions(-)
1853 
1854  commit 910afcb5d7f274880f68dd6cdb5b05f2bbc29adc
1855  Author: Brian Warner <warner@lothar.com>
1856  Date:   Tue Oct 4 00:16:01 2011 -0400
1857 
1858      web.status.PublishStatusPage: add comment, I think .problems isn't exercised
1859 
1860   src/allmydata/web/status.py |    2 ++
1861   1 files changed, 2 insertions(+), 0 deletions(-)
1862 
1863  commit 311466dd8c931bbba40d590ade867704282e7f1a
1864  Author: Brian Warner <warner@lothar.com>
1865  Date:   Mon Oct 3 23:48:16 2011 -0400
1866 
1867      API of PublishStatus.add_per_server_time()
1868 
1869   src/allmydata/mutable/publish.py |    5 +++--
1870   1 files changed, 3 insertions(+), 2 deletions(-)
1871 
1872  commit 2df5faa1b6cbfbaded520d2320305a62fe961118
1873  Author: Brian Warner <warner@lothar.com>
1874  Date:   Mon Oct 3 23:46:37 2011 -0400
1875 
1876      more simplifications
1877 
1878   src/allmydata/mutable/publish.py |    4 +---
1879   1 files changed, 1 insertions(+), 3 deletions(-)
1880 
1881  commit 6ac4544a3da385f2aad9392f906b90192f4f919a
1882  Author: Brian Warner <warner@lothar.com>
1883  Date:   Mon Oct 3 23:44:08 2011 -0400
1884 
1885      API of ServerMap.version_on_server()
1886 
1887   src/allmydata/mutable/publish.py   |    2 +-
1888   src/allmydata/mutable/servermap.py |    4 ++--
1889   src/allmydata/test/test_mutable.py |    5 ++---
1890   3 files changed, 5 insertions(+), 6 deletions(-)
1891 
1892  commit 3e187e322511072e4683329df6b2c6c733a66dba
1893  Author: Brian Warner <warner@lothar.com>
1894  Date:   Tue Oct 4 00:16:32 2011 -0400
1895 
1896      API of ServerMap.make_sharemap()
1897 
1898   src/allmydata/mutable/servermap.py |    4 ++--
1899   src/allmydata/test/test_mutable.py |    7 ++++---
1900   src/allmydata/web/status.py        |    4 ++--
1901   3 files changed, 8 insertions(+), 7 deletions(-)
1902 
1903  commit 318feed8437bdd8d4943c6569d38f7b54b6313cc
1904  Author: Brian Warner <warner@lothar.com>
1905  Date:   Mon Oct 3 23:36:19 2011 -0400
1906 
1907      small cleanups
1908 
1909   src/allmydata/mutable/publish.py |    4 ++--
1910   1 files changed, 2 insertions(+), 2 deletions(-)
1911 
1912  commit bd459ed5714e1db5a7163935c54b7b0b56db8349
1913  Author: Brian Warner <warner@lothar.com>
1914  Date:   Mon Oct 3 23:33:39 2011 -0400
1915 
1916      API of ServerMap.add_new_share()
1917 
1918   src/allmydata/mutable/publish.py   |    4 ++--
1919   src/allmydata/mutable/servermap.py |    6 ++----
1920   2 files changed, 4 insertions(+), 6 deletions(-)
1921 
1922  commit f2804fb6ed11d80088e0da8ed48e6c2922f2ffef
1923  Author: Brian Warner <warner@lothar.com>
1924  Date:   Mon Oct 3 23:30:26 2011 -0400
1925 
1926      API of ServerMap.get_bad_shares()
1927 
1928   src/allmydata/mutable/publish.py   |    3 +--
1929   src/allmydata/mutable/servermap.py |    9 ++++-----
1930   2 files changed, 5 insertions(+), 7 deletions(-)
1931 
1932  commit 965074a47b3ce1431cb46d9a233840afcf9105f5
1933  Author: Brian Warner <warner@lothar.com>
1934  Date:   Mon Oct 3 23:26:58 2011 -0400
1935 
1936      more small cleanups
1937 
1938   src/allmydata/mutable/publish.py |    6 +++---
1939   1 files changed, 3 insertions(+), 3 deletions(-)
1940 
1941  commit 38020da34f034f8889947dd3dc05e087ffff7106
1942  Author: Brian Warner <warner@lothar.com>
1943  Date:   Mon Oct 3 23:18:47 2011 -0400
1944 
1945      change Publish.bad_share_checkstrings
1946 
1947   src/allmydata/mutable/publish.py |    6 +++---
1948   1 files changed, 3 insertions(+), 3 deletions(-)
1949 
1950  commit 5efebcbd2ee0c2f299ea86f7591d856c0f265304
1951  Author: Brian Warner <warner@lothar.com>
1952  Date:   Mon Oct 3 23:16:31 2011 -0400
1953 
1954      change internals of Publish.update_goal()
1955 
1956   src/allmydata/mutable/publish.py |    8 +++-----
1957   1 files changed, 3 insertions(+), 5 deletions(-)
1958 
1959  commit e91b55ff4c2a69165b71f2c7b217ac319ff4c527
1960  Author: Brian Warner <warner@lothar.com>
1961  Date:   Mon Oct 3 23:11:42 2011 -0400
1962 
1963      get rid of Publish.connections
1964 
1965   src/allmydata/mutable/publish.py |   27 +++++----------------------
1966   1 files changed, 5 insertions(+), 22 deletions(-)
1967 
1968  commit 64e9a53b3229ebe2f9ebf7ed502d539311d0e037
1969  Author: Brian Warner <warner@lothar.com>
1970  Date:   Mon Oct 3 23:05:32 2011 -0400
1971 
1972      change Publish.bad_servers
1973 
1974   src/allmydata/mutable/publish.py |   10 +++++-----
1975   1 files changed, 5 insertions(+), 5 deletions(-)
1976 
1977  commit b85a934bef315a06bcfe00c9c12a3627fed2b918
1978  Author: Brian Warner <warner@lothar.com>
1979  Date:   Mon Oct 3 23:03:07 2011 -0400
1980 
1981      Publish.bad_servers: fix bug, this should be a set of serverids, not writers
1982 
1983   src/allmydata/mutable/publish.py |    2 +-
1984   1 files changed, 1 insertions(+), 1 deletions(-)
1985 
1986  commit 605ea15ec15ed671513819003ccd211cdb9761e0
1987  Author: Brian Warner <warner@lothar.com>
1988  Date:   Mon Oct 3 23:00:21 2011 -0400
1989 
1990      change .placed
1991 
1992   src/allmydata/mutable/publish.py |    6 +++---
1993   1 files changed, 3 insertions(+), 3 deletions(-)
1994 
1995  commit f7aba37b1b345d5b6d5cb16e3b3f6f3c1afb658e
1996  Author: Brian Warner <warner@lothar.com>
1997  Date:   Mon Oct 3 22:59:22 2011 -0400
1998 
1999      temporarily stash IServer as .server on the "writer" object
2000 
2001   src/allmydata/mutable/publish.py |    2 ++
2002   1 files changed, 2 insertions(+), 0 deletions(-)
2003 
2004  commit f9b551d788e7db1f187fce5ab98ab5d5fe4e1c36
2005  Author: Brian Warner <warner@lothar.com>
2006  Date:   Mon Oct 3 22:48:18 2011 -0400
2007 
2008      change Publish.goal and API of log_goal() to use IServer, not serverid
2009 
2010   src/allmydata/mutable/publish.py |   48 ++++++++++++++--------------
2011   1 files changed, 24 insertions(+), 24 deletions(-)
2012 
2013  commit 75f20616558e4900b8b1f685dd99aa838de6d452
2014  Author: Brian Warner <warner@lothar.com>
2015  Date:   Mon Oct 3 15:27:02 2011 -0400
2016 
2017      API of ServerMap.get_known_shares()
2018 
2019   src/allmydata/mutable/publish.py   |   16 ++++++++++------
2020   src/allmydata/mutable/servermap.py |    7 ++-----
2021   2 files changed, 12 insertions(+), 11 deletions(-)
2022 
2023  commit 1c38c9d37bb08221b4418762234b1a62397b3b4b
2024  Author: Brian Warner <warner@lothar.com>
2025  Date:   Mon Oct 3 15:20:29 2011 -0400
2026 
2027      Publish.full_serverlist
2028 
2029   src/allmydata/mutable/publish.py |   10 +++++-----
2030   1 files changed, 5 insertions(+), 5 deletions(-)
2031 
2032  commit b6cbd215a04b9cde31a7d92a97a7f048622b16f1
2033  Author: Brian Warner <warner@lothar.com>
2034  Date:   Mon Oct 3 15:12:31 2011 -0400
2035 
2036      API of ServerMap.all_servers()
2037 
2038   src/allmydata/mutable/servermap.py |   19 ++++++-------------
2039   1 files changed, 6 insertions(+), 13 deletions(-)
2040 
2041  commit e63cd0315fae65357b1727ec6d5ff3c6e0d27c98
2042  Author: Brian Warner <warner@lothar.com>
2043  Date:   Mon Oct 3 15:10:18 2011 -0400
2044 
2045      remove ServerMap.connections, set_rref_for_serverid()
2046 
2047   src/allmydata/mutable/servermap.py |   11 +----------
2048   1 files changed, 1 insertions(+), 10 deletions(-)
2049 
2050  commit 4df52db2f80eb12eefa5d57103c24893cde89553
2051  Author: Brian Warner <warner@lothar.com>
2052  Date:   Mon Oct 3 15:04:06 2011 -0400
2053 
2054      API of ServerMap.mark_server_reachable()
2055 
2056   src/allmydata/mutable/servermap.py |    7 ++-----
2057   1 files changed, 2 insertions(+), 5 deletions(-)
2058 
2059  commit 69c715bde77944dc25181b3dbbeb042c816f9a1b
2060  Author: Brian Warner <warner@lothar.com>
2061  Date:   Mon Oct 3 15:03:21 2011 -0400
2062 
2063      API of ServerMap.mark_server_unreachable()
2064 
2065   src/allmydata/mutable/servermap.py |    9 +++------
2066   1 files changed, 3 insertions(+), 6 deletions(-)
2067 
2068  commit 3d784d60eec1c508858e3a617e4411ffbcc3c1fa
2069  Author: Brian Warner <warner@lothar.com>
2070  Date:   Mon Oct 3 15:02:03 2011 -0400
2071 
2072      API of status.set_privkey_from()
2073 
2074   src/allmydata/mutable/servermap.py |    7 +++----
2075   1 files changed, 3 insertions(+), 4 deletions(-)
2076 
2077  commit 544ed3ea29bed7e66da7fd29ca3f6f076f27a9e6
2078  Author: Brian Warner <warner@lothar.com>
2079  Date:   Mon Oct 3 15:01:15 2011 -0400
2080 
2081      API of status.add_per_server_time()
2082 
2083   src/allmydata/mutable/servermap.py |    7 ++++---
2084   1 files changed, 4 insertions(+), 3 deletions(-)
2085 
2086  commit fffe5008b6320bd1e04c3c68389a2bf2ee383fa8
2087  Author: Brian Warner <warner@lothar.com>
2088  Date:   Mon Oct 3 14:59:02 2011 -0400
2089 
2090      remove unused .versionmap
2091 
2092   src/allmydata/mutable/servermap.py |    7 -------
2093   1 files changed, 0 insertions(+), 7 deletions(-)
2094 
2095  commit 2816562e090d2294179db3588dafcca18de1bc2b
2096  Author: Brian Warner <warner@lothar.com>
2097  Date:   Mon Oct 3 14:57:51 2011 -0400
2098 
2099      remove serverid from all log messages. Also one unused lambda.
2100 
2101   src/allmydata/mutable/servermap.py |   30 +++++++++++++-------------
2102   1 files changed, 15 insertions(+), 15 deletions(-)
2103 
2104  commit 28fa6b1a2738fa98c1f1dbd3d0e01ae98912d11f
2105  Author: Brian Warner <warner@lothar.com>
2106  Date:   Mon Oct 3 14:54:30 2011 -0400
2107 
2108      removed unused _readers
2109 
2110   src/allmydata/mutable/servermap.py |    3 ---
2111   1 files changed, 0 insertions(+), 3 deletions(-)
2112 
2113  commit a8e4ed3d645ab592d1add6a1e69b6d1ebfb77817
2114  Author: Brian Warner <warner@lothar.com>
2115  Date:   Mon Oct 3 14:54:16 2011 -0400
2116 
2117      remove unused _sharemap
2118 
2119   src/allmydata/mutable/servermap.py |    1 -
2120   1 files changed, 0 insertions(+), 1 deletions(-)
2121 
2122  commit 3f072e55cf1d0700f9fffe23f8f3a475725df588
2123  Author: Brian Warner <warner@lothar.com>
2124  Date:   Mon Oct 3 14:49:03 2011 -0400
2125 
2126      _must_query
2127 
2128   src/allmydata/mutable/servermap.py |    8 ++++----
2129   1 files changed, 4 insertions(+), 4 deletions(-)
2130 
2131  commit c599a059b8df3f5785e4bf89fb6ecc6d8dcd708b
2132  Author: Brian Warner <warner@lothar.com>
2133  Date:   Mon Oct 3 14:48:05 2011 -0400
2134 
2135      _queries_outstanding
2136 
2137   src/allmydata/mutable/servermap.py |   16 +++++++---------
2138   1 files changed, 7 insertions(+), 9 deletions(-)
2139 
2140  commit 7743759f98ac2c07926b2fdbd80bf52dfab33085
2141  Author: Brian Warner <warner@lothar.com>
2142  Date:   Mon Oct 3 14:46:17 2011 -0400
2143 
2144      _empty_servers
2145 
2146   src/allmydata/mutable/servermap.py |    5 ++---
2147   1 files changed, 2 insertions(+), 3 deletions(-)
2148 
2149  commit 6bb1825916828a713a32cdf7f7411fa3ea2e1e5d
2150  Author: Brian Warner <warner@lothar.com>
2151  Date:   Mon Oct 3 14:45:39 2011 -0400
2152 
2153      _good_servers
2154 
2155   src/allmydata/mutable/servermap.py |    4 ++--
2156   1 files changed, 2 insertions(+), 2 deletions(-)
2157 
2158  commit 1768fab1b51d8dd93ecabbaaabfadfa20cf6c3d4
2159  Author: Brian Warner <warner@lothar.com>
2160  Date:   Mon Oct 3 14:44:59 2011 -0400
2161 
2162      _bad_servers
2163 
2164   src/allmydata/mutable/servermap.py |   14 +++++++-------
2165   1 files changed, 7 insertions(+), 7 deletions(-)
2166 
2167  commit dccbaef30f0ba714c746bf6d4a1a803c36e17b65
2168  Author: Brian Warner <warner@lothar.com>
2169  Date:   Mon Oct 3 14:41:54 2011 -0400
2170 
2171      API of _try_to_set_pubkey()
2172 
2173   src/allmydata/mutable/servermap.py |    7 ++++---
2174   1 files changed, 4 insertions(+), 3 deletions(-)
2175 
2176  commit 0481ea70042ba3575f15eac7fd0780f8ece580cc
2177  Author: Brian Warner <warner@lothar.com>
2178  Date:   Mon Oct 3 14:35:02 2011 -0400
2179 
2180      API of notify_server_corruption()
2181 
2182   src/allmydata/mutable/servermap.py |    6 +++---
2183   1 files changed, 3 insertions(+), 3 deletions(-)
2184 
2185  commit bea9cba18fb3b9c11bb22f18356a263ecec7351e
2186  Author: Brian Warner <warner@lothar.com>
2187  Date:   Mon Oct 3 14:34:09 2011 -0400
2188 
2189      API of _got_signature_one_share()
2190 
2191   src/allmydata/mutable/servermap.py |    9 +++++----
2192   1 files changed, 5 insertions(+), 4 deletions(-)
2193 
2194  commit 1520123583cf78650706e114b15bb5b0ac1f4a14
2195  Author: Brian Warner <warner@lothar.com>
2196  Date:   Mon Oct 3 14:32:33 2011 -0400
2197 
2198      API of _try_to_validate_privkey()
2199 
2200   src/allmydata/mutable/servermap.py |    9 +++++----
2201   1 files changed, 5 insertions(+), 4 deletions(-)
2202 
2203  commit 938852c9c8519c7a078f58a9b1f4dd8ec8b6715e
2204  Author: Brian Warner <warner@lothar.com>
2205  Date:   Mon Oct 3 14:31:48 2011 -0400
2206 
2207      API and internals of _add_lease_failed()
2208 
2209   src/allmydata/mutable/servermap.py |    8 ++++----
2210   1 files changed, 4 insertions(+), 4 deletions(-)
2211 
2212  commit 3843dba367e3c19e176a622ab853cb51d2472ddf
2213  Author: Brian Warner <warner@lothar.com>
2214  Date:   Mon Oct 3 14:30:37 2011 -0400
2215 
2216      API of _privkey_query_failed()
2217 
2218   src/allmydata/mutable/servermap.py |    5 +++--
2219   1 files changed, 3 insertions(+), 2 deletions(-)
2220 
2221  commit 2219a710e1633cd57d0ca0786490de87b3e19ba7
2222  Author: Brian Warner <warner@lothar.com>
2223  Date:   Mon Oct 3 14:29:43 2011 -0400
2224 
2225      fix bug in call to _privkey_query_failed, unrelated to refactoring
2226 
2227   src/allmydata/mutable/servermap.py |    2 +-
2228   1 files changed, 1 insertions(+), 1 deletions(-)
2229 
2230  commit ae615bec7d0d1b269710b6902797b12f9592ad62
2231  Author: Brian Warner <warner@lothar.com>
2232  Date:   Mon Oct 3 14:27:17 2011 -0400
2233 
2234      API of _got_corrupt_share()
2235 
2236   src/allmydata/mutable/servermap.py |   17 +++++++++--------
2237   1 files changed, 9 insertions(+), 8 deletions(-)
2238 
2239  commit cb51c95a6f4e077278157a77dab060c8c1ad7a81
2240  Author: Brian Warner <warner@lothar.com>
2241  Date:   Mon Oct 3 14:23:16 2011 -0400
2242 
2243      API of _got_results()
2244 
2245   src/allmydata/mutable/servermap.py |    9 +++++----
2246   1 files changed, 5 insertions(+), 4 deletions(-)
2247 
2248  commit bac9154fe0af18f226999a58ffc2362d8cf4b802
2249  Author: Brian Warner <warner@lothar.com>
2250  Date:   Mon Oct 3 14:19:19 2011 -0400
2251 
2252      API of _query_failed()
2253 
2254   src/allmydata/mutable/servermap.py |    5 +++--
2255   1 files changed, 3 insertions(+), 2 deletions(-)
2256 
2257  commit fdc29a8ca95d4b5c503e5382b9e5d4d02141ba12
2258  Author: Brian Warner <warner@lothar.com>
2259  Date:   Mon Oct 3 14:17:20 2011 -0400
2260 
2261      API of _do_read()
2262 
2263   src/allmydata/mutable/servermap.py |    6 ++++--
2264   1 files changed, 4 insertions(+), 2 deletions(-)
2265 
2266  commit e7e9e338f28d004aa4d423d11c65f1e271ac7322
2267  Author: Brian Warner <warner@lothar.com>
2268  Date:   Mon Oct 3 14:20:21 2011 -0400
2269 
2270      API of _do_query()
2271 
2272   src/allmydata/mutable/servermap.py |   15 +++++++--------
2273   1 files changed, 7 insertions(+), 8 deletions(-)
2274 
2275  commit 330625b9dac4cdbe72a11464a893065b9aeed453
2276  Author: Brian Warner <warner@lothar.com>
2277  Date:   Mon Oct 3 14:43:05 2011 -0400
2278 
2279      next step: first batch of updates to ServermapUpdater
2280 
2281      updates:
2282       most method-local variables in update()
2283       API of _build_initial_querylist()
2284       API of _send_initial_requests()
2285       .full_serverlist
2286       .extra_servers
2287 
2288   src/allmydata/mutable/servermap.py |   39 ++++++++++++++------------
2289   1 files changed, 21 insertions(+), 18 deletions(-)
2290 
2291  commit 4aadc584fa7dcb2daa86b048c81dee0049ba26d9
2292  Author: Brian Warner <warner@lothar.com>
2293  Date:   Mon Oct 3 15:07:00 2011 -0400
2294 
2295      internal change: index _bad_shares with IServer
2296 
2297   src/allmydata/mutable/servermap.py |   20 ++++++++++----------
2298   1 files changed, 10 insertions(+), 10 deletions(-)
2299 
2300  commit 16d4e6fa82a9907dbdc92094213387c6a4164e41
2301  Author: Brian Warner <warner@lothar.com>
2302  Date:   Mon Oct 3 18:20:47 2011 +0100
2303 
2304      internal change: index _known_shares with IServer instead of serverid
2305 
2306      callers are unchanged
2307 
2308   src/allmydata/mutable/servermap.py |   42 +++++++++++++++----------
2309   1 files changed, 25 insertions(+), 17 deletions(-)
2310 
2311  commit ceeb5f4938cc814a0c75d1b8f4018aed965c2176
2312  Author: Brian Warner <warner@lothar.com>
2313  Date:   Mon Oct 3 18:11:43 2011 +0100
2314 
2315      accessors and name cleanup for servermap.Servermap.last_update_mode/time
2316 
2317   src/allmydata/mutable/filenode.py  |    6 +++---
2318   src/allmydata/mutable/publish.py   |    4 ++--
2319   src/allmydata/mutable/servermap.py |   17 +++++++++++------
2320   3 files changed, 16 insertions(+), 11 deletions(-)
2321 
2322  commit 8d3cbda82661c0a7e5c3d3b65cf7a5d5ab7e32c0
2323  Author: Brian Warner <warner@lothar.com>
2324  Date:   Mon Oct 3 18:11:14 2011 +0100
2325 
2326      accessors and name cleanup for servermap.Servermap.problems
2327 
2328   src/allmydata/mutable/servermap.py |   21 +++++++++++++--------
2329   src/allmydata/test/test_mutable.py |    6 +++---
2330   2 files changed, 16 insertions(+), 11 deletions(-)
2331 
2332  commit 348f57988f79389db0aab7672e6eaa9a6d8e3219
2333  Author: Brian Warner <warner@lothar.com>
2334  Date:   Mon Oct 3 18:10:41 2011 +0100
2335 
2336      accessors and name cleanup for servermap.Servermap.bad_shares
2337 
2338   src/allmydata/mutable/publish.py   |    2 +-
2339   src/allmydata/mutable/servermap.py |   30 ++++++++++++++-----------
2340   2 files changed, 18 insertions(+), 14 deletions(-)
2341 
2342  commit 520c9368134673cdf76c653c5e1bb91c2ab5d51e
2343  Author: Brian Warner <warner@lothar.com>
2344  Date:   Mon Oct 3 18:10:05 2011 +0100
2345 
2346      accessors and name cleanup for servermap.Servermap.servermap .
2347 
2348   src/allmydata/mutable/publish.py   |   14 +++++----
2349   src/allmydata/mutable/servermap.py |   38 ++++++++++++++-----------
2350   2 files changed, 29 insertions(+), 23 deletions(-)
2351 
2352  commit b8b8dc38287a91dbdf494426ac801d9381ce5841
2353  Author: Brian Warner <warner@lothar.com>
2354  Date:   Mon Oct 3 18:08:02 2011 +0100
2355 
2356      fix reachable_servers
2357 
2358   src/allmydata/mutable/checker.py   |    3 ++-
2359   src/allmydata/mutable/publish.py   |    4 +++-
2360   src/allmydata/mutable/servermap.py |   12 ++++++++++--
2361   3 files changed, 15 insertions(+), 4 deletions(-)
2362 
2363  commit cb0cfd1adfefad357c187aaaf690c3df68b622bc
2364  Author: Brian Warner <warner@lothar.com>
2365  Date:   Mon Oct 3 18:06:03 2011 +0100
2366 
2367      fix Servermap.unreachable_servers
2368 
2369   src/allmydata/mutable/servermap.py |   11 ++++++++---
2370   1 files changed, 8 insertions(+), 3 deletions(-)
2371 
2372  commit 2d9ea79b94bd4db674d40386fda90825785ac495
2373  Author: Brian Warner <warner@lothar.com>
2374  Date:   Mon Oct 3 18:03:48 2011 +0100
2375 
2376      give ServerMap a StorageFarmBroker, temporary
2377 
2378      this makes it possible for the ServerMap to accept bare serverids and still
2379      build data structures with IServers
2380 
2381   src/allmydata/mutable/checker.py   |    2 +-
2382   src/allmydata/mutable/filenode.py  |    2 +-
2383   src/allmydata/mutable/publish.py   |    2 +-
2384   src/allmydata/mutable/servermap.py |    5 +++--
2385   src/allmydata/test/test_mutable.py |    8 ++++----
2386   5 files changed, 10 insertions(+), 9 deletions(-)
2387 
2388  commit 718d1aeff6fded893f65397806d22ece928b0dd4
2389  Author: Brian Warner <warner@lothar.com>
2390  Date:   Mon Oct 3 13:43:30 2011 -0400
2391 
2392      add StorageFarmBroker.get_server_for_id(), temporary helper
2393 
2394      This will go away once we're passing IServers everywhere.
2395 
2396   src/allmydata/storage_client.py  |    2 ++
2397   src/allmydata/test/no_network.py |   13 +++++++++++++
2398   2 files changed, 15 insertions(+), 0 deletions(-)
2399 
2400  commit ece20231d7fda0d503704842a4aa068dfbc2e54e
2401  Author: Brian Warner <warner@lothar.com>
2402  Date:   Sun Oct 2 01:11:50 2011 +0100
2403 
2404      add proper accessors for Servermap.connections, to make refactoring easier
2405 
2406   src/allmydata/mutable/publish.py   |    6 +++---
2407   src/allmydata/mutable/retrieve.py  |   10 +++++-----
2408   src/allmydata/mutable/servermap.py |   17 +++++++++++------
2409   3 files changed, 19 insertions(+), 14 deletions(-)
2410 
2411  commit 3b943d6bf302ff702668081a612fc4fe2604cf9c
2412  Author: Brian Warner <warner@lothar.com>
2413  Date:   Fri Sep 23 10:34:30 2011 -0700
2414 
2415      mutable/servermap.py and neighbors: s/peer/server/
2416 
2417   src/allmydata/mutable/checker.py   |   22 +-
2418   src/allmydata/mutable/publish.py   |  204 +++++++-------
2419   src/allmydata/mutable/servermap.py |  402 +++++++++++++-------------
2420   src/allmydata/test/test_mutable.py |   18 +-
2421   4 files changed, 323 insertions(+), 323 deletions(-)
2422 IServer refactoring: pass IServer instances around, instead of peerids
2423 
2424 refs #1363
2425 
2426 This collapses 88 small incremental changes (each of which passes all tests)
2427 into one big patch. The development process for the long path started with
2428 adding some temporary scaffolding, changing one method at a time, then
2429 removing the scaffolding. The individual pieces are as follows, in reverse
2430 chronological order (the first patch is at the end of this comment):
2431 
2432  commit 9bbe4174fd0d98a6cf47a8ef96e85d9ef34b2f9a
2433  Author: Brian Warner <warner@lothar.com>
2434  Date:   Tue Oct 4 16:05:00 2011 -0400
2435 
2436      immutable/downloader/status.py: correct comment
2437 
2438   src/allmydata/immutable/downloader/status.py |    2 +-
2439   1 files changed, 1 insertions(+), 1 deletions(-)
2440 
2441  commit 72146a7c7c91eac2f7c3ceb801eb7a1721376889
2442  Author: Brian Warner <warner@lothar.com>
2443  Date:   Tue Oct 4 15:46:20 2011 -0400
2444 
2445      remove temporary ServerMap._storage_broker
2446 
2447   src/allmydata/mutable/checker.py   |    2 +-
2448   src/allmydata/mutable/filenode.py  |    2 +-
2449   src/allmydata/mutable/publish.py   |    2 +-
2450   src/allmydata/mutable/servermap.py |    5 ++---
2451   src/allmydata/test/test_mutable.py |    8 ++++----
2452   5 files changed, 9 insertions(+), 10 deletions(-)
2453 
2454  commit d703096b41632c47d76414b12672e076a422ff5c
2455  Author: Brian Warner <warner@lothar.com>
2456  Date:   Tue Oct 4 15:37:05 2011 -0400
2457 
2458      remove temporary storage_broker.get_server_for_id()
2459 
2460   src/allmydata/storage_client.py  |    3 ---
2461   src/allmydata/test/no_network.py |   13 -------------
2462   2 files changed, 0 insertions(+), 16 deletions(-)
2463 
2464  commit 620cc5d80882ef6f7decfd26af8a6c7c1ddf80d1
2465  Author: Brian Warner <warner@lothar.com>
2466  Date:   Tue Oct 4 12:50:06 2011 -0400
2467 
2468      API of Retrieve._try_to_validate_privkey(), trying to remove reader.server
2469 
2470   src/allmydata/mutable/retrieve.py |   10 +++++-----
2471   1 files changed, 5 insertions(+), 5 deletions(-)
2472 
2473  commit 92f43f856f4a8b36c207d1b190ed8699b5a4ecb4
2474  Author: Brian Warner <warner@lothar.com>
2475  Date:   Tue Oct 4 12:48:08 2011 -0400
2476 
2477      API of Retrieve._validate_block(), trying to remove reader.server
2478 
2479   src/allmydata/mutable/retrieve.py |   14 +++++++-------
2480   1 files changed, 7 insertions(+), 7 deletions(-)
2481 
2482  commit 572d5070761861a2190349d1ed8d85dbc25698a5
2483  Author: Brian Warner <warner@lothar.com>
2484  Date:   Tue Oct 4 12:36:58 2011 -0400
2485 
2486      API of Retrieve._mark_bad_share(), trying to remove reader.server
2487 
2488   src/allmydata/mutable/retrieve.py |   21 +++++++++------------
2489   1 files changed, 9 insertions(+), 12 deletions(-)
2490 
2491  commit a793ff00c0de1e2eec7b46288fdf388c7a2bec89
2492  Author: Brian Warner <warner@lothar.com>
2493  Date:   Tue Oct 4 12:06:13 2011 -0400
2494 
2495      remove now-unused get_rref_for_serverid()
2496 
2497   src/allmydata/mutable/servermap.py |    3 ---
2498   1 files changed, 0 insertions(+), 3 deletions(-)
2499 
2500  commit 1b9827cc9366bf90b93297fdd6832f2ad0480ce7
2501  Author: Brian Warner <warner@lothar.com>
2502  Date:   Tue Oct 4 12:03:09 2011 -0400
2503 
2504      Retrieve: stop adding .serverid attributes to readers
2505 
2506   src/allmydata/mutable/retrieve.py |    1 -
2507   1 files changed, 0 insertions(+), 1 deletions(-)
2508 
2509  commit 5d4e9d491b19e49d2e443a1dfff2c672842c36ef
2510  Author: Brian Warner <warner@lothar.com>
2511  Date:   Tue Oct 4 12:03:34 2011 -0400
2512 
2513      return value of Retrieve(verify=True)
2514 
2515   src/allmydata/mutable/checker.py  |   11 ++++++-----
2516   src/allmydata/mutable/retrieve.py |    3 +--
2517   2 files changed, 7 insertions(+), 7 deletions(-)
2518 
2519  commit e9ab7978c384e1f677cb7779dc449b1044face82
2520  Author: Brian Warner <warner@lothar.com>
2521  Date:   Tue Oct 4 11:54:23 2011 -0400
2522 
2523      Retrieve._bad_shares (but not return value, used by Verifier)
2524 
2525   src/allmydata/mutable/retrieve.py |    7 ++++---
2526   1 files changed, 4 insertions(+), 3 deletions(-)
2527 
2528  commit 2d91926de233ec5c881f30e36b4a30ad92ab42a9
2529  Author: Brian Warner <warner@lothar.com>
2530  Date:   Tue Oct 4 11:51:23 2011 -0400
2531 
2532      Publish: stop adding .serverid attributes to writers
2533 
2534   src/allmydata/mutable/publish.py |    9 ++-------
2535   1 files changed, 2 insertions(+), 7 deletions(-)
2536 
2537  commit 47c7a0105dec7cbf4f7e0a3ce800bbb85b15df4a
2538  Author: Brian Warner <warner@lothar.com>
2539  Date:   Tue Oct 4 11:56:33 2011 -0400
2540 
2541      API of get_write_enabler()
2542 
2543   src/allmydata/mutable/filenode.py |    7 ++++---
2544   src/allmydata/mutable/publish.py  |    4 ++--
2545   src/allmydata/test/no_network.py  |    3 +++
2546   3 files changed, 9 insertions(+), 5 deletions(-)
2547 
2548  commit 9196a5c6590fdbfd660325ea8358b345887d3db0
2549  Author: Brian Warner <warner@lothar.com>
2550  Date:   Tue Oct 4 11:46:24 2011 -0400
2551 
2552      API of get_(renewal|cancel)_secret()
2553 
2554   src/allmydata/mutable/filenode.py  |   14 ++++++++------
2555   src/allmydata/mutable/publish.py   |    8 ++++----
2556   src/allmydata/mutable/servermap.py |    5 ++---
2557   3 files changed, 14 insertions(+), 13 deletions(-)
2558 
2559  commit de7c1552f8c163eff5b6d820b5fb3b21c1b47cb5
2560  Author: Brian Warner <warner@lothar.com>
2561  Date:   Tue Oct 4 11:41:52 2011 -0400
2562 
2563      API of CorruptShareError. Also comment out some related+unused test_web.py code
2564 
2565   src/allmydata/mutable/common.py    |   13 +++++--------
2566   src/allmydata/mutable/retrieve.py  |   10 +++++-----
2567   src/allmydata/mutable/servermap.py |    8 +++-----
2568   src/allmydata/test/common.py       |   13 ++++++++-----
2569   4 files changed, 21 insertions(+), 23 deletions(-)
2570 
2571  commit 2c1c314046b620c16f1e66d030c150d768b7d01e
2572  Author: Brian Warner <warner@lothar.com>
2573  Date:   Tue Oct 4 12:01:46 2011 -0400
2574 
2575      API of ServerMap.mark_bad_share()
2576 
2577   src/allmydata/mutable/publish.py   |    2 +-
2578   src/allmydata/mutable/retrieve.py  |    6 +++---
2579   src/allmydata/mutable/servermap.py |    6 ++----
2580   src/allmydata/test/test_mutable.py |    3 +--
2581   4 files changed, 7 insertions(+), 10 deletions(-)
2582 
2583  commit 1bed349030779fd0c378ae4e821384f953c6f6ff
2584  Author: Brian Warner <warner@lothar.com>
2585  Date:   Tue Oct 4 11:11:17 2011 -0400
2586 
2587      API+name of ServerMap.shares_on_server() : only for tests, so debug_ prefix
2588 
2589   src/allmydata/mutable/servermap.py |    7 ++-----
2590   src/allmydata/test/test_mutable.py |    6 +++---
2591   2 files changed, 5 insertions(+), 8 deletions(-)
2592 
2593  commit 2d32e448677d6b818692e801045d4115b29abf21
2594  Author: Brian Warner <warner@lothar.com>
2595  Date:   Tue Oct 4 11:07:10 2011 -0400
2596 
2597      API of ServerMap.all_servers_for_version()
2598 
2599   src/allmydata/mutable/servermap.py |    4 ++--
2600   1 files changed, 2 insertions(+), 2 deletions(-)
2601 
2602  commit 48f3204d1889c3e7179578125c4bdef515af3d6a
2603  Author: Brian Warner <warner@lothar.com>
2604  Date:   Tue Oct 4 11:04:50 2011 -0400
2605 
2606      internals of ServerMap methods that use make_versionmap(), remove temp copy
2607 
2608   src/allmydata/mutable/servermap.py |   28 +++++++++----------------
2609   1 files changed, 10 insertions(+), 18 deletions(-)
2610 
2611  commit 5c3da77b6c777a145bd5ddfaa4db849dc9495548
2612  Author: Brian Warner <warner@lothar.com>
2613  Date:   Tue Oct 4 11:01:28 2011 -0400
2614 
2615      API of ServerMap.make_versionmap()
2616 
2617   src/allmydata/mutable/checker.py   |    4 ++--
2618   src/allmydata/mutable/retrieve.py  |    5 ++---
2619   src/allmydata/mutable/servermap.py |    4 ++--
2620   src/allmydata/test/test_mutable.py |    7 ++++---
2621   4 files changed, 10 insertions(+), 10 deletions(-)
2622 
2623  commit b6882ece49afb4c507d118af2db346fa329209dc
2624  Author: Brian Warner <warner@lothar.com>
2625  Date:   Tue Oct 4 10:53:38 2011 -0400
2626 
2627      make a copy of ServerMap.make_versionmap() (_make_versionmap2) for internal use
2628 
2629   src/allmydata/mutable/servermap.py |   18 +++++++++++++-----
2630   1 files changed, 13 insertions(+), 5 deletions(-)
2631 
2632  commit 963f8e63faf32b950eb1b8103cd2ff16fe8f0151
2633  Author: Brian Warner <warner@lothar.com>
2634  Date:   Tue Oct 4 00:45:58 2011 -0400
2635 
2636      API of RetrieveStatus.add_problem()
2637 
2638   src/allmydata/mutable/retrieve.py |    5 +++--
2639   1 files changed, 3 insertions(+), 2 deletions(-)
2640 
2641  commit 4976d29ffae565a048851601c29013bbae2976d8
2642  Author: Brian Warner <warner@lothar.com>
2643  Date:   Tue Oct 4 00:45:05 2011 -0400
2644 
2645      API of RetrieveStatus.add_fetch_timing()
2646 
2647   src/allmydata/mutable/retrieve.py |    5 +++--
2648   1 files changed, 3 insertions(+), 2 deletions(-)
2649 
2650  commit d057d3bbba72663ee148a8b916bc2d52be2e3982
2651  Author: Brian Warner <warner@lothar.com>
2652  Date:   Tue Oct 4 00:44:04 2011 -0400
2653 
2654      API of Retrieve.notify_server_corruption()
2655 
2656   src/allmydata/mutable/retrieve.py |    6 +++---
2657   1 files changed, 3 insertions(+), 3 deletions(-)
2658 
2659  commit 8a2a81e46671c860610e0e96d6add1a57551f22d
2660  Author: Brian Warner <warner@lothar.com>
2661  Date:   Tue Oct 4 00:42:32 2011 -0400
2662 
2663      remove unused _outstanding_queries
2664 
2665   src/allmydata/mutable/retrieve.py |    1 -
2666   1 files changed, 0 insertions(+), 1 deletions(-)
2667 
2668  commit 56d12cc9968d03ccd53764455c671122c4f391d1
2669  Author: Brian Warner <warner@lothar.com>
2670  Date:   Tue Oct 4 00:40:57 2011 -0400
2671 
2672      change Retrieve.remaining_sharemap
2673 
2674   src/allmydata/mutable/retrieve.py |    4 ++--
2675   1 files changed, 2 insertions(+), 2 deletions(-)
2676 
2677  commit 4f0b7af4821f43290bfc70f2b1fc30149ad81281
2678  Author: Brian Warner <warner@lothar.com>
2679  Date:   Tue Oct 4 10:40:18 2011 -0400
2680 
2681      accessor for PublishStatus._problems
2682 
2683   src/allmydata/mutable/publish.py |    4 +++-
2684   src/allmydata/web/status.py      |    2 +-
2685   2 files changed, 4 insertions(+), 2 deletions(-)
2686 
2687  commit 627087cf66d0b8cc519f4d551a967a7bd9b6a741
2688  Author: Brian Warner <warner@lothar.com>
2689  Date:   Tue Oct 4 10:36:39 2011 -0400
2690 
2691      accessor for RetrieveStatus._problems
2692 
2693   src/allmydata/mutable/retrieve.py |    8 ++++++--
2694   src/allmydata/web/status.py       |    2 +-
2695   2 files changed, 7 insertions(+), 3 deletions(-)
2696 
2697  commit ca7dea81f03801b1c7353fc00ecba689268109cf
2698  Author: Brian Warner <warner@lothar.com>
2699  Date:   Tue Oct 4 00:35:32 2011 -0400
2700 
2701      add .server to "reader", so we can get at it later
2702 
2703   src/allmydata/mutable/retrieve.py |    5 +++--
2704   1 files changed, 3 insertions(+), 2 deletions(-)
2705 
2706  commit 6ef516e24908ec195af084a7550d1921a5e983b0
2707  Author: Brian Warner <warner@lothar.com>
2708  Date:   Tue Oct 4 00:32:32 2011 -0400
2709 
2710      temporarily give Retrieve a _storage_broker, so it can map serverids to servers
2711 
2712   src/allmydata/mutable/checker.py   |    3 ++-
2713   src/allmydata/mutable/filenode.py  |    6 ++++--
2714   src/allmydata/mutable/retrieve.py  |    5 +++--
2715   src/allmydata/test/test_mutable.py |    4 ++--
2716   4 files changed, 11 insertions(+), 7 deletions(-)
2717 
2718  commit afe08e4dd3f4ff9ff7e8a2a8d28b181e3625bcc9
2719  Author: Brian Warner <warner@lothar.com>
2720  Date:   Tue Oct 4 00:21:51 2011 -0400
2721 
2722      mutable/retrieve.py: s/peer/server/
2723 
2724   src/allmydata/mutable/retrieve.py  |   82 +++++++++++++-------------
2725   src/allmydata/test/test_mutable.py |    6 +-
2726   2 files changed, 44 insertions(+), 44 deletions(-)
2727 
2728  commit 910afcb5d7f274880f68dd6cdb5b05f2bbc29adc
2729  Author: Brian Warner <warner@lothar.com>
2730  Date:   Tue Oct 4 00:16:01 2011 -0400
2731 
2732      web.status.PublishStatusPage: add comment, I think .problems isn't exercised
2733 
2734   src/allmydata/web/status.py |    2 ++
2735   1 files changed, 2 insertions(+), 0 deletions(-)
2736 
2737  commit 311466dd8c931bbba40d590ade867704282e7f1a
2738  Author: Brian Warner <warner@lothar.com>
2739  Date:   Mon Oct 3 23:48:16 2011 -0400
2740 
2741      API of PublishStatus.add_per_server_time()
2742 
2743   src/allmydata/mutable/publish.py |    5 +++--
2744   1 files changed, 3 insertions(+), 2 deletions(-)
2745 
2746  commit 2df5faa1b6cbfbaded520d2320305a62fe961118
2747  Author: Brian Warner <warner@lothar.com>
2748  Date:   Mon Oct 3 23:46:37 2011 -0400
2749 
2750      more simplifications
2751 
2752   src/allmydata/mutable/publish.py |    4 +---
2753   1 files changed, 1 insertions(+), 3 deletions(-)
2754 
2755  commit 6ac4544a3da385f2aad9392f906b90192f4f919a
2756  Author: Brian Warner <warner@lothar.com>
2757  Date:   Mon Oct 3 23:44:08 2011 -0400
2758 
2759      API of ServerMap.version_on_server()
2760 
2761   src/allmydata/mutable/publish.py   |    2 +-
2762   src/allmydata/mutable/servermap.py |    4 ++--
2763   src/allmydata/test/test_mutable.py |    5 ++---
2764   3 files changed, 5 insertions(+), 6 deletions(-)
2765 
2766  commit 3e187e322511072e4683329df6b2c6c733a66dba
2767  Author: Brian Warner <warner@lothar.com>
2768  Date:   Tue Oct 4 00:16:32 2011 -0400
2769 
2770      API of ServerMap.make_sharemap()
2771 
2772   src/allmydata/mutable/servermap.py |    4 ++--
2773   src/allmydata/test/test_mutable.py |    7 ++++---
2774   src/allmydata/web/status.py        |    4 ++--
2775   3 files changed, 8 insertions(+), 7 deletions(-)
2776 
2777  commit 318feed8437bdd8d4943c6569d38f7b54b6313cc
2778  Author: Brian Warner <warner@lothar.com>
2779  Date:   Mon Oct 3 23:36:19 2011 -0400
2780 
2781      small cleanups
2782 
2783   src/allmydata/mutable/publish.py |    4 ++--
2784   1 files changed, 2 insertions(+), 2 deletions(-)
2785 
2786  commit bd459ed5714e1db5a7163935c54b7b0b56db8349
2787  Author: Brian Warner <warner@lothar.com>
2788  Date:   Mon Oct 3 23:33:39 2011 -0400
2789 
2790      API of ServerMap.add_new_share()
2791 
2792   src/allmydata/mutable/publish.py   |    4 ++--
2793   src/allmydata/mutable/servermap.py |    6 ++----
2794   2 files changed, 4 insertions(+), 6 deletions(-)
2795 
2796  commit f2804fb6ed11d80088e0da8ed48e6c2922f2ffef
2797  Author: Brian Warner <warner@lothar.com>
2798  Date:   Mon Oct 3 23:30:26 2011 -0400
2799 
2800      API of ServerMap.get_bad_shares()
2801 
2802   src/allmydata/mutable/publish.py   |    3 +--
2803   src/allmydata/mutable/servermap.py |    9 ++++-----
2804   2 files changed, 5 insertions(+), 7 deletions(-)
2805 
2806  commit 965074a47b3ce1431cb46d9a233840afcf9105f5
2807  Author: Brian Warner <warner@lothar.com>
2808  Date:   Mon Oct 3 23:26:58 2011 -0400
2809 
2810      more small cleanups
2811 
2812   src/allmydata/mutable/publish.py |    6 +++---
2813   1 files changed, 3 insertions(+), 3 deletions(-)
2814 
2815  commit 38020da34f034f8889947dd3dc05e087ffff7106
2816  Author: Brian Warner <warner@lothar.com>
2817  Date:   Mon Oct 3 23:18:47 2011 -0400
2818 
2819      change Publish.bad_share_checkstrings
2820 
2821   src/allmydata/mutable/publish.py |    6 +++---
2822   1 files changed, 3 insertions(+), 3 deletions(-)
2823 
2824  commit 5efebcbd2ee0c2f299ea86f7591d856c0f265304
2825  Author: Brian Warner <warner@lothar.com>
2826  Date:   Mon Oct 3 23:16:31 2011 -0400
2827 
2828      change internals of Publish.update_goal()
2829 
2830   src/allmydata/mutable/publish.py |    8 +++-----
2831   1 files changed, 3 insertions(+), 5 deletions(-)
2832 
2833  commit e91b55ff4c2a69165b71f2c7b217ac319ff4c527
2834  Author: Brian Warner <warner@lothar.com>
2835  Date:   Mon Oct 3 23:11:42 2011 -0400
2836 
2837      get rid of Publish.connections
2838 
2839   src/allmydata/mutable/publish.py |   27 +++++----------------------
2840   1 files changed, 5 insertions(+), 22 deletions(-)
2841 
2842  commit 64e9a53b3229ebe2f9ebf7ed502d539311d0e037
2843  Author: Brian Warner <warner@lothar.com>
2844  Date:   Mon Oct 3 23:05:32 2011 -0400
2845 
2846      change Publish.bad_servers
2847 
2848   src/allmydata/mutable/publish.py |   10 +++++-----
2849   1 files changed, 5 insertions(+), 5 deletions(-)
2850 
2851  commit b85a934bef315a06bcfe00c9c12a3627fed2b918
2852  Author: Brian Warner <warner@lothar.com>
2853  Date:   Mon Oct 3 23:03:07 2011 -0400
2854 
2855      Publish.bad_servers: fix bug, this should be a set of serverids, not writers
2856 
2857   src/allmydata/mutable/publish.py |    2 +-
2858   1 files changed, 1 insertions(+), 1 deletions(-)
2859 
2860  commit 605ea15ec15ed671513819003ccd211cdb9761e0
2861  Author: Brian Warner <warner@lothar.com>
2862  Date:   Mon Oct 3 23:00:21 2011 -0400
2863 
2864      change .placed
2865 
2866   src/allmydata/mutable/publish.py |    6 +++---
2867   1 files changed, 3 insertions(+), 3 deletions(-)
2868 
2869  commit f7aba37b1b345d5b6d5cb16e3b3f6f3c1afb658e
2870  Author: Brian Warner <warner@lothar.com>
2871  Date:   Mon Oct 3 22:59:22 2011 -0400
2872 
2873      temporarily stash IServer as .server on the "writer" object
2874 
2875   src/allmydata/mutable/publish.py |    2 ++
2876   1 files changed, 2 insertions(+), 0 deletions(-)
2877 
2878  commit f9b551d788e7db1f187fce5ab98ab5d5fe4e1c36
2879  Author: Brian Warner <warner@lothar.com>
2880  Date:   Mon Oct 3 22:48:18 2011 -0400
2881 
2882      change Publish.goal and API of log_goal() to use IServer, not serverid
2883 
2884   src/allmydata/mutable/publish.py |   48 ++++++++++++++--------------
2885   1 files changed, 24 insertions(+), 24 deletions(-)
2886 
2887  commit 75f20616558e4900b8b1f685dd99aa838de6d452
2888  Author: Brian Warner <warner@lothar.com>
2889  Date:   Mon Oct 3 15:27:02 2011 -0400
2890 
2891      API of ServerMap.get_known_shares()
2892 
2893   src/allmydata/mutable/publish.py   |   16 ++++++++++------
2894   src/allmydata/mutable/servermap.py |    7 ++-----
2895   2 files changed, 12 insertions(+), 11 deletions(-)
2896 
2897  commit 1c38c9d37bb08221b4418762234b1a62397b3b4b
2898  Author: Brian Warner <warner@lothar.com>
2899  Date:   Mon Oct 3 15:20:29 2011 -0400
2900 
2901      Publish.full_serverlist
2902 
2903   src/allmydata/mutable/publish.py |   10 +++++-----
2904   1 files changed, 5 insertions(+), 5 deletions(-)
2905 
2906  commit b6cbd215a04b9cde31a7d92a97a7f048622b16f1
2907  Author: Brian Warner <warner@lothar.com>
2908  Date:   Mon Oct 3 15:12:31 2011 -0400
2909 
2910      API of ServerMap.all_servers()
2911 
2912   src/allmydata/mutable/servermap.py |   19 ++++++-------------
2913   1 files changed, 6 insertions(+), 13 deletions(-)
2914 
2915  commit e63cd0315fae65357b1727ec6d5ff3c6e0d27c98
2916  Author: Brian Warner <warner@lothar.com>
2917  Date:   Mon Oct 3 15:10:18 2011 -0400
2918 
2919      remove ServerMap.connections, set_rref_for_serverid()
2920 
2921   src/allmydata/mutable/servermap.py |   11 +----------
2922   1 files changed, 1 insertions(+), 10 deletions(-)
2923 
2924  commit 4df52db2f80eb12eefa5d57103c24893cde89553
2925  Author: Brian Warner <warner@lothar.com>
2926  Date:   Mon Oct 3 15:04:06 2011 -0400
2927 
2928      API of ServerMap.mark_server_reachable()
2929 
2930   src/allmydata/mutable/servermap.py |    7 ++-----
2931   1 files changed, 2 insertions(+), 5 deletions(-)
2932 
2933  commit 69c715bde77944dc25181b3dbbeb042c816f9a1b
2934  Author: Brian Warner <warner@lothar.com>
2935  Date:   Mon Oct 3 15:03:21 2011 -0400
2936 
2937      API of ServerMap.mark_server_unreachable()
2938 
2939   src/allmydata/mutable/servermap.py |    9 +++------
2940   1 files changed, 3 insertions(+), 6 deletions(-)
2941 
2942  commit 3d784d60eec1c508858e3a617e4411ffbcc3c1fa
2943  Author: Brian Warner <warner@lothar.com>
2944  Date:   Mon Oct 3 15:02:03 2011 -0400
2945 
2946      API of status.set_privkey_from()
2947 
2948   src/allmydata/mutable/servermap.py |    7 +++----
2949   1 files changed, 3 insertions(+), 4 deletions(-)
2950 
2951  commit 544ed3ea29bed7e66da7fd29ca3f6f076f27a9e6
2952  Author: Brian Warner <warner@lothar.com>
2953  Date:   Mon Oct 3 15:01:15 2011 -0400
2954 
2955      API of status.add_per_server_time()
2956 
2957   src/allmydata/mutable/servermap.py |    7 ++++---
2958   1 files changed, 4 insertions(+), 3 deletions(-)
2959 
2960  commit fffe5008b6320bd1e04c3c68389a2bf2ee383fa8
2961  Author: Brian Warner <warner@lothar.com>
2962  Date:   Mon Oct 3 14:59:02 2011 -0400
2963 
2964      remove unused .versionmap
2965 
2966   src/allmydata/mutable/servermap.py |    7 -------
2967   1 files changed, 0 insertions(+), 7 deletions(-)
2968 
2969  commit 2816562e090d2294179db3588dafcca18de1bc2b
2970  Author: Brian Warner <warner@lothar.com>
2971  Date:   Mon Oct 3 14:57:51 2011 -0400
2972 
2973      remove serverid from all log messages. Also one unused lambda.
2974 
2975   src/allmydata/mutable/servermap.py |   30 +++++++++++++-------------
2976   1 files changed, 15 insertions(+), 15 deletions(-)
2977 
2978  commit 28fa6b1a2738fa98c1f1dbd3d0e01ae98912d11f
2979  Author: Brian Warner <warner@lothar.com>
2980  Date:   Mon Oct 3 14:54:30 2011 -0400
2981 
2982      removed unused _readers
2983 
2984   src/allmydata/mutable/servermap.py |    3 ---
2985   1 files changed, 0 insertions(+), 3 deletions(-)
2986 
2987  commit a8e4ed3d645ab592d1add6a1e69b6d1ebfb77817
2988  Author: Brian Warner <warner@lothar.com>
2989  Date:   Mon Oct 3 14:54:16 2011 -0400
2990 
2991      remove unused _sharemap
2992 
2993   src/allmydata/mutable/servermap.py |    1 -
2994   1 files changed, 0 insertions(+), 1 deletions(-)
2995 
2996  commit 3f072e55cf1d0700f9fffe23f8f3a475725df588
2997  Author: Brian Warner <warner@lothar.com>
2998  Date:   Mon Oct 3 14:49:03 2011 -0400
2999 
3000      _must_query
3001 
3002   src/allmydata/mutable/servermap.py |    8 ++++----
3003   1 files changed, 4 insertions(+), 4 deletions(-)
3004 
3005  commit c599a059b8df3f5785e4bf89fb6ecc6d8dcd708b
3006  Author: Brian Warner <warner@lothar.com>
3007  Date:   Mon Oct 3 14:48:05 2011 -0400
3008 
3009      _queries_outstanding
3010 
3011   src/allmydata/mutable/servermap.py |   16 +++++++---------
3012   1 files changed, 7 insertions(+), 9 deletions(-)
3013 
3014  commit 7743759f98ac2c07926b2fdbd80bf52dfab33085
3015  Author: Brian Warner <warner@lothar.com>
3016  Date:   Mon Oct 3 14:46:17 2011 -0400
3017 
3018      _empty_servers
3019 
3020   src/allmydata/mutable/servermap.py |    5 ++---
3021   1 files changed, 2 insertions(+), 3 deletions(-)
3022 
3023  commit 6bb1825916828a713a32cdf7f7411fa3ea2e1e5d
3024  Author: Brian Warner <warner@lothar.com>
3025  Date:   Mon Oct 3 14:45:39 2011 -0400
3026 
3027      _good_servers
3028 
3029   src/allmydata/mutable/servermap.py |    4 ++--
3030   1 files changed, 2 insertions(+), 2 deletions(-)
3031 
3032  commit 1768fab1b51d8dd93ecabbaaabfadfa20cf6c3d4
3033  Author: Brian Warner <warner@lothar.com>
3034  Date:   Mon Oct 3 14:44:59 2011 -0400
3035 
3036      _bad_servers
3037 
3038   src/allmydata/mutable/servermap.py |   14 +++++++-------
3039   1 files changed, 7 insertions(+), 7 deletions(-)
3040 
3041  commit dccbaef30f0ba714c746bf6d4a1a803c36e17b65
3042  Author: Brian Warner <warner@lothar.com>
3043  Date:   Mon Oct 3 14:41:54 2011 -0400
3044 
3045      API of _try_to_set_pubkey()
3046 
3047   src/allmydata/mutable/servermap.py |    7 ++++---
3048   1 files changed, 4 insertions(+), 3 deletions(-)
3049 
3050  commit 0481ea70042ba3575f15eac7fd0780f8ece580cc
3051  Author: Brian Warner <warner@lothar.com>
3052  Date:   Mon Oct 3 14:35:02 2011 -0400
3053 
3054      API of notify_server_corruption()
3055 
3056   src/allmydata/mutable/servermap.py |    6 +++---
3057   1 files changed, 3 insertions(+), 3 deletions(-)
3058 
3059  commit bea9cba18fb3b9c11bb22f18356a263ecec7351e
3060  Author: Brian Warner <warner@lothar.com>
3061  Date:   Mon Oct 3 14:34:09 2011 -0400
3062 
3063      API of _got_signature_one_share()
3064 
3065   src/allmydata/mutable/servermap.py |    9 +++++----
3066   1 files changed, 5 insertions(+), 4 deletions(-)
3067 
3068  commit 1520123583cf78650706e114b15bb5b0ac1f4a14
3069  Author: Brian Warner <warner@lothar.com>
3070  Date:   Mon Oct 3 14:32:33 2011 -0400
3071 
3072      API of _try_to_validate_privkey()
3073 
3074   src/allmydata/mutable/servermap.py |    9 +++++----
3075   1 files changed, 5 insertions(+), 4 deletions(-)
3076 
3077  commit 938852c9c8519c7a078f58a9b1f4dd8ec8b6715e
3078  Author: Brian Warner <warner@lothar.com>
3079  Date:   Mon Oct 3 14:31:48 2011 -0400
3080 
3081      API and internals of _add_lease_failed()
3082 
3083   src/allmydata/mutable/servermap.py |    8 ++++----
3084   1 files changed, 4 insertions(+), 4 deletions(-)
3085 
3086  commit 3843dba367e3c19e176a622ab853cb51d2472ddf
3087  Author: Brian Warner <warner@lothar.com>
3088  Date:   Mon Oct 3 14:30:37 2011 -0400
3089 
3090      API of _privkey_query_failed()
3091 
3092   src/allmydata/mutable/servermap.py |    5 +++--
3093   1 files changed, 3 insertions(+), 2 deletions(-)
3094 
3095  commit 2219a710e1633cd57d0ca0786490de87b3e19ba7
3096  Author: Brian Warner <warner@lothar.com>
3097  Date:   Mon Oct 3 14:29:43 2011 -0400
3098 
3099      fix bug in call to _privkey_query_failed, unrelated to refactoring
3100 
3101   src/allmydata/mutable/servermap.py |    2 +-
3102   1 files changed, 1 insertions(+), 1 deletions(-)
3103 
3104  commit ae615bec7d0d1b269710b6902797b12f9592ad62
3105  Author: Brian Warner <warner@lothar.com>
3106  Date:   Mon Oct 3 14:27:17 2011 -0400
3107 
3108      API of _got_corrupt_share()
3109 
3110   src/allmydata/mutable/servermap.py |   17 +++++++++--------
3111   1 files changed, 9 insertions(+), 8 deletions(-)
3112 
3113  commit cb51c95a6f4e077278157a77dab060c8c1ad7a81
3114  Author: Brian Warner <warner@lothar.com>
3115  Date:   Mon Oct 3 14:23:16 2011 -0400
3116 
3117      API of _got_results()
3118 
3119   src/allmydata/mutable/servermap.py |    9 +++++----
3120   1 files changed, 5 insertions(+), 4 deletions(-)
3121 
3122  commit bac9154fe0af18f226999a58ffc2362d8cf4b802
3123  Author: Brian Warner <warner@lothar.com>
3124  Date:   Mon Oct 3 14:19:19 2011 -0400
3125 
3126      API of _query_failed()
3127 
3128   src/allmydata/mutable/servermap.py |    5 +++--
3129   1 files changed, 3 insertions(+), 2 deletions(-)
3130 
3131  commit fdc29a8ca95d4b5c503e5382b9e5d4d02141ba12
3132  Author: Brian Warner <warner@lothar.com>
3133  Date:   Mon Oct 3 14:17:20 2011 -0400
3134 
3135      API of _do_read()
3136 
3137   src/allmydata/mutable/servermap.py |    6 ++++--
3138   1 files changed, 4 insertions(+), 2 deletions(-)
3139 
3140  commit e7e9e338f28d004aa4d423d11c65f1e271ac7322
3141  Author: Brian Warner <warner@lothar.com>
3142  Date:   Mon Oct 3 14:20:21 2011 -0400
3143 
3144      API of _do_query()
3145 
3146   src/allmydata/mutable/servermap.py |   15 +++++++--------
3147   1 files changed, 7 insertions(+), 8 deletions(-)
3148 
3149  commit 330625b9dac4cdbe72a11464a893065b9aeed453
3150  Author: Brian Warner <warner@lothar.com>
3151  Date:   Mon Oct 3 14:43:05 2011 -0400
3152 
3153      next step: first batch of updates to ServermapUpdater
3154 
3155      updates:
3156       most method-local variables in update()
3157       API of _build_initial_querylist()
3158       API of _send_initial_requests()
3159       .full_serverlist
3160       .extra_servers
3161 
3162   src/allmydata/mutable/servermap.py |   39 ++++++++++++++------------
3163   1 files changed, 21 insertions(+), 18 deletions(-)
3164 
3165  commit 4aadc584fa7dcb2daa86b048c81dee0049ba26d9
3166  Author: Brian Warner <warner@lothar.com>
3167  Date:   Mon Oct 3 15:07:00 2011 -0400
3168 
3169      internal change: index _bad_shares with IServer
3170 
3171   src/allmydata/mutable/servermap.py |   20 ++++++++++----------
3172   1 files changed, 10 insertions(+), 10 deletions(-)
3173 
3174  commit 16d4e6fa82a9907dbdc92094213387c6a4164e41
3175  Author: Brian Warner <warner@lothar.com>
3176  Date:   Mon Oct 3 18:20:47 2011 +0100
3177 
3178      internal change: index _known_shares with IServer instead of serverid
3179 
3180      callers are unchanged
3181 
3182   src/allmydata/mutable/servermap.py |   42 +++++++++++++++----------
3183   1 files changed, 25 insertions(+), 17 deletions(-)
3184 
3185  commit ceeb5f4938cc814a0c75d1b8f4018aed965c2176
3186  Author: Brian Warner <warner@lothar.com>
3187  Date:   Mon Oct 3 18:11:43 2011 +0100
3188 
3189      accessors and name cleanup for servermap.Servermap.last_update_mode/time
3190 
3191   src/allmydata/mutable/filenode.py  |    6 +++---
3192   src/allmydata/mutable/publish.py   |    4 ++--
3193   src/allmydata/mutable/servermap.py |   17 +++++++++++------
3194   3 files changed, 16 insertions(+), 11 deletions(-)
3195 
3196  commit 8d3cbda82661c0a7e5c3d3b65cf7a5d5ab7e32c0
3197  Author: Brian Warner <warner@lothar.com>
3198  Date:   Mon Oct 3 18:11:14 2011 +0100
3199 
3200      accessors and name cleanup for servermap.Servermap.problems
3201 
3202   src/allmydata/mutable/servermap.py |   21 +++++++++++++--------
3203   src/allmydata/test/test_mutable.py |    6 +++---
3204   2 files changed, 16 insertions(+), 11 deletions(-)
3205 
3206  commit 348f57988f79389db0aab7672e6eaa9a6d8e3219
3207  Author: Brian Warner <warner@lothar.com>
3208  Date:   Mon Oct 3 18:10:41 2011 +0100
3209 
3210      accessors and name cleanup for servermap.Servermap.bad_shares
3211 
3212   src/allmydata/mutable/publish.py   |    2 +-
3213   src/allmydata/mutable/servermap.py |   30 ++++++++++++++-----------
3214   2 files changed, 18 insertions(+), 14 deletions(-)
3215 
3216  commit 520c9368134673cdf76c653c5e1bb91c2ab5d51e
3217  Author: Brian Warner <warner@lothar.com>
3218  Date:   Mon Oct 3 18:10:05 2011 +0100
3219 
3220      accessors and name cleanup for servermap.Servermap.servermap .
3221 
3222   src/allmydata/mutable/publish.py   |   14 +++++----
3223   src/allmydata/mutable/servermap.py |   38 ++++++++++++++-----------
3224   2 files changed, 29 insertions(+), 23 deletions(-)
3225 
3226  commit b8b8dc38287a91dbdf494426ac801d9381ce5841
3227  Author: Brian Warner <warner@lothar.com>
3228  Date:   Mon Oct 3 18:08:02 2011 +0100
3229 
3230      fix reachable_servers
3231 
3232   src/allmydata/mutable/checker.py   |    3 ++-
3233   src/allmydata/mutable/publish.py   |    4 +++-
3234   src/allmydata/mutable/servermap.py |   12 ++++++++++--
3235   3 files changed, 15 insertions(+), 4 deletions(-)
3236 
3237  commit cb0cfd1adfefad357c187aaaf690c3df68b622bc
3238  Author: Brian Warner <warner@lothar.com>
3239  Date:   Mon Oct 3 18:06:03 2011 +0100
3240 
3241      fix Servermap.unreachable_servers
3242 
3243   src/allmydata/mutable/servermap.py |   11 ++++++++---
3244   1 files changed, 8 insertions(+), 3 deletions(-)
3245 
3246  commit 2d9ea79b94bd4db674d40386fda90825785ac495
3247  Author: Brian Warner <warner@lothar.com>
3248  Date:   Mon Oct 3 18:03:48 2011 +0100
3249 
3250      give ServerMap a StorageFarmBroker, temporary
3251 
3252      this makes it possible for the ServerMap to accept bare serverids and still
3253      build data structures with IServers
3254 
3255   src/allmydata/mutable/checker.py   |    2 +-
3256   src/allmydata/mutable/filenode.py  |    2 +-
3257   src/allmydata/mutable/publish.py   |    2 +-
3258   src/allmydata/mutable/servermap.py |    5 +++--
3259   src/allmydata/test/test_mutable.py |    8 ++++----
3260   5 files changed, 10 insertions(+), 9 deletions(-)
3261 
3262  commit 718d1aeff6fded893f65397806d22ece928b0dd4
3263  Author: Brian Warner <warner@lothar.com>
3264  Date:   Mon Oct 3 13:43:30 2011 -0400
3265 
3266      add StorageFarmBroker.get_server_for_id(), temporary helper
3267 
3268      This will go away once we're passing IServers everywhere.
3269 
3270   src/allmydata/storage_client.py  |    2 ++
3271   src/allmydata/test/no_network.py |   13 +++++++++++++
3272   2 files changed, 15 insertions(+), 0 deletions(-)
3273 
3274  commit ece20231d7fda0d503704842a4aa068dfbc2e54e
3275  Author: Brian Warner <warner@lothar.com>
3276  Date:   Sun Oct 2 01:11:50 2011 +0100
3277 
3278      add proper accessors for Servermap.connections, to make refactoring easier
3279 
3280   src/allmydata/mutable/publish.py   |    6 +++---
3281   src/allmydata/mutable/retrieve.py  |   10 +++++-----
3282   src/allmydata/mutable/servermap.py |   17 +++++++++++------
3283   3 files changed, 19 insertions(+), 14 deletions(-)
3284 
3285  commit 3b943d6bf302ff702668081a612fc4fe2604cf9c
3286  Author: Brian Warner <warner@lothar.com>
3287  Date:   Fri Sep 23 10:34:30 2011 -0700
3288 
3289      mutable/servermap.py and neighbors: s/peer/server/
3290 
3291   src/allmydata/mutable/checker.py   |   22 +-
3292   src/allmydata/mutable/publish.py   |  204 +++++++-------
3293   src/allmydata/mutable/servermap.py |  402 +++++++++++++-------------
3294   src/allmydata/test/test_mutable.py |   18 +-
3295   4 files changed, 323 insertions(+), 323 deletions(-)
3296]
3297[TAG allmydata-tahoe-1.9.0
3298warner@lothar.com**20111031052301
3299 Ignore-this: cf598210dd1f314a1a121bf29a3d5918
3300]
3301Patch bundle hash:
3302bf0451551ff7acaa3eb8429a0f228eada88ab0a2