Ticket #1771: doc-1297-fixed.darcs.patch

File doc-1297-fixed.darcs.patch, 127.6 KB (added by davidsarah, at 2012-06-18T17:06:26Z)

docs/frontends/FTP-and-SFTP.rst: remove reference to rekeying bug since it does not apply now that we depend on Twisted 11.0. refs #1297 refs #1771. Includes patch to update Twisted requirement.

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