Ticket #1628: fix-1628.darcs.2.patch

File fix-1628.darcs.2.patch, 84.2 KB (added by kevan, at 2011-12-27T20:38:48Z)
Line 
1Mon Dec 12 17:01:10 PST 2011  Kevan Carstensen <kevan@isnotajoke.com>
2  * Make NoNetworkGrid.remove server return the server object it removes
3 
4  This supports tests that remove servers from the grid only to add them
5  again later with their state intact.
6
7Mon Dec 26 12:43:38 PST 2011  Kevan Carstensen <kevan@isnotajoke.com>
8  * mutable/publish: Change self.writers to map a shnum to a list of writers
9 
10  Without this patch, the publisher only keeps track of a single writer
11  for each share. This is insufficient to handle updates in which a single
12  share may live on multiple servers. In the best case, an update will
13  only update one of the existing shares instead of all of them. In some
14  cases, the update will encounter the existing shares when publishing
15  some other share, interpret them as a sign of an uncoordinated update,
16  and fail. Keeping track of all of the writers helps ensure that all
17  existing shares are updated, and helps avoid spurious uncoordinated
18  write errors.
19
20Tue Dec 27 11:02:26 PST 2011  Kevan Carstensen <kevan@isnotajoke.com>
21  * Add test_mutable.Problems.test_multiply_placed_shares
22 
23  This tests for two regressions resulting from a design flaw in the 1.9
24  mutable publisher; specifically, that the publisher doesn't keep track
25  of more than one server for each share. This can lead to spurious UCWEs,
26  as seen in ticket #1628. This also means that the publisher will no
27  longer write shares associated with a new version of a mutable file over
28  all of the existing shares that it can find, which potentially decreases
29  the robustness of the new version of the mutable file.
30
31New patches:
32
33[Make NoNetworkGrid.remove server return the server object it removes
34Kevan Carstensen <kevan@isnotajoke.com>**20111213010110
35 Ignore-this: e25e624cce27821500fa0eaa6e708cb3
36 
37 This supports tests that remove servers from the grid only to add them
38 again later with their state intact.
39] hunk ./src/allmydata/test/no_network.py 292
40         del self.wrappers_by_id[serverid]
41         del self.proxies_by_id[serverid]
42         self.rebuild_serverlist()
43+        return ss
44 
45     def break_server(self, serverid):
46         # mark the given server as broken, so it will throw exceptions when
47[mutable/publish: Change self.writers to map a shnum to a list of writers
48Kevan Carstensen <kevan@isnotajoke.com>**20111226204338
49 Ignore-this: e92d27afff800c1253d66c5ef07b49e0
50 
51 Without this patch, the publisher only keeps track of a single writer
52 for each share. This is insufficient to handle updates in which a single
53 share may live on multiple servers. In the best case, an update will
54 only update one of the existing shares instead of all of them. In some
55 cases, the update will encounter the existing shares when publishing
56 some other share, interpret them as a sign of an uncoordinated update,
57 and fail. Keeping track of all of the writers helps ensure that all
58 existing shares are updated, and helps avoid spurious uncoordinated
59 write errors.
60] {
61hunk ./src/allmydata/mutable/publish.py 272
62             cancel_secret = self._node.get_cancel_secret(server)
63             secrets = (write_enabler, renew_secret, cancel_secret)
64 
65-            self.writers[shnum] =  writer_class(shnum,
66-                                                server.get_rref(),
67-                                                self._storage_index,
68-                                                secrets,
69-                                                self._new_seqnum,
70-                                                self.required_shares,
71-                                                self.total_shares,
72-                                                self.segment_size,
73-                                                self.datalength)
74-            self.writers[shnum].server = server
75+            writer = writer_class(shnum,
76+                                  server.get_rref(),
77+                                  self._storage_index,
78+                                  secrets,
79+                                  self._new_seqnum,
80+                                  self.required_shares,
81+                                  self.total_shares,
82+                                  self.segment_size,
83+                                  self.datalength)
84+
85+            self.writers.setdefault(shnum, []).append(writer)
86+            writer.server = server
87             known_shares = self._servermap.get_known_shares()
88             assert (server, shnum) in known_shares
89             old_versionid, old_timestamp = known_shares[(server,shnum)]
90hunk ./src/allmydata/mutable/publish.py 290
91             (old_seqnum, old_root_hash, old_salt, old_segsize,
92              old_datalength, old_k, old_N, old_prefix,
93              old_offsets_tuple) = old_versionid
94-            self.writers[shnum].set_checkstring(old_seqnum,
95-                                                old_root_hash,
96-                                                old_salt)
97+            writer.set_checkstring(old_seqnum,
98+                                   old_root_hash,
99+                                   old_salt)
100 
101         # Our remote shares will not have a complete checkstring until
102         # after we are done writing share data and have started to write
103hunk ./src/allmydata/mutable/publish.py 298
104         # blocks. In the meantime, we need to know what to look for when
105         # writing, so that we can detect UncoordinatedWriteErrors.
106-        self._checkstring = self.writers.values()[0].get_checkstring()
107+        self._checkstring = self.writers.values()[0][0].get_checkstring()
108 
109         # Now, we start pushing shares.
110         self._status.timings["setup"] = time.time() - self._started
111hunk ./src/allmydata/mutable/publish.py 471
112             cancel_secret = self._node.get_cancel_secret(server)
113             secrets = (write_enabler, renew_secret, cancel_secret)
114 
115-            self.writers[shnum] =  writer_class(shnum,
116-                                                server.get_rref(),
117-                                                self._storage_index,
118-                                                secrets,
119-                                                self._new_seqnum,
120-                                                self.required_shares,
121-                                                self.total_shares,
122-                                                self.segment_size,
123-                                                self.datalength)
124-            self.writers[shnum].server = server
125+            writer =  writer_class(shnum,
126+                                   server.get_rref(),
127+                                   self._storage_index,
128+                                   secrets,
129+                                   self._new_seqnum,
130+                                   self.required_shares,
131+                                   self.total_shares,
132+                                   self.segment_size,
133+                                   self.datalength)
134+            self.writers.setdefault(shnum, []).append(writer)
135+            writer.server = server
136             known_shares = self._servermap.get_known_shares()
137             if (server, shnum) in known_shares:
138                 old_versionid, old_timestamp = known_shares[(server,shnum)]
139hunk ./src/allmydata/mutable/publish.py 488
140                 (old_seqnum, old_root_hash, old_salt, old_segsize,
141                  old_datalength, old_k, old_N, old_prefix,
142                  old_offsets_tuple) = old_versionid
143-                self.writers[shnum].set_checkstring(old_seqnum,
144-                                                    old_root_hash,
145-                                                    old_salt)
146+                writer.set_checkstring(old_seqnum,
147+                                       old_root_hash,
148+                                       old_salt)
149             elif (server, shnum) in self.bad_share_checkstrings:
150                 old_checkstring = self.bad_share_checkstrings[(server, shnum)]
151hunk ./src/allmydata/mutable/publish.py 493
152-                self.writers[shnum].set_checkstring(old_checkstring)
153+                writer.set_checkstring(old_checkstring)
154 
155         # Our remote shares will not have a complete checkstring until
156         # after we are done writing share data and have started to write
157hunk ./src/allmydata/mutable/publish.py 499
158         # blocks. In the meantime, we need to know what to look for when
159         # writing, so that we can detect UncoordinatedWriteErrors.
160-        self._checkstring = self.writers.values()[0].get_checkstring()
161+        self._checkstring = self.writers.values()[0][0].get_checkstring()
162 
163         # Now, we start pushing shares.
164         self._status.timings["setup"] = time.time() - self._started
165hunk ./src/allmydata/mutable/publish.py 626
166         # Can we still successfully publish this file?
167         # TODO: Keep track of outstanding queries before aborting the
168         #       process.
169-        if len(self.writers) < self.required_shares or self.surprised:
170+        all_shnums = filter(lambda sh: len(self.writers[sh]) > 0,
171+                            self.writers.iterkeys())
172+        if len(all_shnums) < self.required_shares or self.surprised:
173             return self._failure()
174 
175         # Figure out what we need to do next. Each of these needs to
176hunk ./src/allmydata/mutable/publish.py 683
177         salt = os.urandom(16)
178         assert self._version == SDMF_VERSION
179 
180-        for writer in self.writers.itervalues():
181-            writer.put_salt(salt)
182+        for shnum, writers in self.writers.iteritems():
183+            for writer in writers:
184+                writer.put_salt(salt)
185 
186 
187     def _encode_segment(self, segnum):
188hunk ./src/allmydata/mutable/publish.py 760
189             block_hash = hashutil.block_hash(hashed)
190             self.blockhashes[shareid][segnum] = block_hash
191             # find the writer for this share
192-            writer = self.writers[shareid]
193-            writer.put_block(sharedata, segnum, salt)
194+            writers = self.writers[shareid]
195+            for writer in writers:
196+                writer.put_block(sharedata, segnum, salt)
197 
198 
199     def push_everything_else(self):
200hunk ./src/allmydata/mutable/publish.py 785
201     def push_encprivkey(self):
202         encprivkey = self._encprivkey
203         self._status.set_status("Pushing encrypted private key")
204-        for writer in self.writers.itervalues():
205-            writer.put_encprivkey(encprivkey)
206+        for shnum, writers in self.writers.iteritems():
207+            for writer in writers:
208+                writer.put_encprivkey(encprivkey)
209 
210 
211     def push_blockhashes(self):
212hunk ./src/allmydata/mutable/publish.py 799
213             # set the leaf for future use.
214             self.sharehash_leaves[shnum] = t[0]
215 
216-            writer = self.writers[shnum]
217-            writer.put_blockhashes(self.blockhashes[shnum])
218+            writers = self.writers[shnum]
219+            for writer in writers:
220+                writer.put_blockhashes(self.blockhashes[shnum])
221 
222 
223     def push_sharehashes(self):
224hunk ./src/allmydata/mutable/publish.py 811
225             needed_indices = share_hash_tree.needed_hashes(shnum)
226             self.sharehashes[shnum] = dict( [ (i, share_hash_tree[i])
227                                              for i in needed_indices] )
228-            writer = self.writers[shnum]
229-            writer.put_sharehashes(self.sharehashes[shnum])
230+            writers = self.writers[shnum]
231+            for writer in writers:
232+                writer.put_sharehashes(self.sharehashes[shnum])
233         self.root_hash = share_hash_tree[0]
234 
235 
236hunk ./src/allmydata/mutable/publish.py 824
237         #   - Push the signature
238         self._status.set_status("Pushing root hashes and signature")
239         for shnum in xrange(self.total_shares):
240-            writer = self.writers[shnum]
241-            writer.put_root_hash(self.root_hash)
242+            writers = self.writers[shnum]
243+            for writer in writers:
244+                writer.put_root_hash(self.root_hash)
245         self._update_checkstring()
246         self._make_and_place_signature()
247 
248hunk ./src/allmydata/mutable/publish.py 839
249         uncoordinated writes. SDMF files will have the same checkstring,
250         so we need not do anything.
251         """
252-        self._checkstring = self.writers.values()[0].get_checkstring()
253+        self._checkstring = self.writers.values()[0][0].get_checkstring()
254 
255 
256     def _make_and_place_signature(self):
257hunk ./src/allmydata/mutable/publish.py 848
258         """
259         started = time.time()
260         self._status.set_status("Signing prefix")
261-        signable = self.writers[0].get_signable()
262+        signable = self.writers.values()[0][0].get_signable()
263         self.signature = self._privkey.sign(signable)
264 
265hunk ./src/allmydata/mutable/publish.py 851
266-        for (shnum, writer) in self.writers.iteritems():
267-            writer.put_signature(self.signature)
268+        for (shnum, writers) in self.writers.iteritems():
269+            for writer in writers:
270+                writer.put_signature(self.signature)
271         self._status.timings['sign'] = time.time() - started
272 
273 
274hunk ./src/allmydata/mutable/publish.py 866
275         ds = []
276         verification_key = self._pubkey.serialize()
277 
278-        for (shnum, writer) in self.writers.copy().iteritems():
279-            writer.put_verification_key(verification_key)
280-            self.num_outstanding += 1
281-            def _no_longer_outstanding(res):
282-                self.num_outstanding -= 1
283-                return res
284+        for (shnum, writers) in self.writers.copy().iteritems():
285+            for writer in writers:
286+                writer.put_verification_key(verification_key)
287+                self.num_outstanding += 1
288+                def _no_longer_outstanding(res):
289+                    self.num_outstanding -= 1
290+                    return res
291 
292hunk ./src/allmydata/mutable/publish.py 874
293-            d = writer.finish_publishing()
294-            d.addBoth(_no_longer_outstanding)
295-            d.addErrback(self._connection_problem, writer)
296-            d.addCallback(self._got_write_answer, writer, started)
297-            ds.append(d)
298+                d = writer.finish_publishing()
299+                d.addBoth(_no_longer_outstanding)
300+                d.addErrback(self._connection_problem, writer)
301+                d.addCallback(self._got_write_answer, writer, started)
302+                ds.append(d)
303         self._record_verinfo()
304         self._status.timings['pack'] = time.time() - started
305         return defer.DeferredList(ds)
306hunk ./src/allmydata/mutable/publish.py 885
307 
308 
309     def _record_verinfo(self):
310-        self.versioninfo = self.writers.values()[0].get_verinfo()
311+        self.versioninfo = self.writers.values()[0][0].get_verinfo()
312 
313 
314     def _connection_problem(self, f, writer):
315hunk ./src/allmydata/mutable/publish.py 895
316         """
317         self.log("found problem: %s" % str(f))
318         self._last_failure = f
319-        del(self.writers[writer.shnum])
320+        self.writers[writer.shnum].remove(writer)
321 
322 
323     def log_goal(self, goal, message=""):
324hunk ./src/allmydata/mutable/publish.py 1004
325         # knowingly also writing to that server from other writers.
326 
327         # TODO: Precompute this.
328-        known_shnums = [x.shnum for x in self.writers.values()
329-                        if x.server == server]
330-        surprise_shares -= set(known_shnums)
331+        shares = []
332+        for shnum, writers in self.writers.iteritems():
333+            shares.extend([x.shnum for x in writers if x.server == server])
334+        known_shnums = set(shares)
335+        surprise_shares -= known_shnums
336         self.log("found the following surprise shares: %s" %
337                  str(surprise_shares))
338 
339}
340[Add test_mutable.Problems.test_multiply_placed_shares
341Kevan Carstensen <kevan@isnotajoke.com>**20111227190226
342 Ignore-this: 6c2d924113c60aa0f8ebc661bd6faed3
343 
344 This tests for two regressions resulting from a design flaw in the 1.9
345 mutable publisher; specifically, that the publisher doesn't keep track
346 of more than one server for each share. This can lead to spurious UCWEs,
347 as seen in ticket #1628. This also means that the publisher will no
348 longer write shares associated with a new version of a mutable file over
349 all of the existing shares that it can find, which potentially decreases
350 the robustness of the new version of the mutable file.
351] hunk ./src/allmydata/test/test_mutable.py 2537
352         d.addCallback(_created)
353         return d
354 
355+    def test_multiply_placed_shares(self):
356+        self.basedir = "mutable/Problems/test_multiply_placed_shares"
357+        self.set_up_grid()
358+        client = self.g.clients[0]
359+        nm = client.nodemaker
360+        d = nm.create_mutable_file(MutableData("contents 1"))
361+        # remove one of the servers and reupload the file.
362+        def _created(n):
363+            self._node = n
364+
365+            servers = self.g.get_all_serverids()
366+            self.ss = self.g.remove_server(servers[len(servers)-1])
367+
368+            new_server = self.g.make_server(len(servers)-1)
369+            self.g.add_server(len(servers)-1, new_server)
370+
371+            return self._node.download_best_version()
372+        d.addCallback(_created)
373+        d.addCallback(lambda data: MutableData(data))
374+        d.addCallback(lambda data: self._node.overwrite(data))
375+
376+        # restore the server we removed earlier, then download+upload
377+        # the file again
378+        def _overwritten(ign):
379+            self.g.add_server(len(self.g.servers_by_number), self.ss)
380+            return self._node.download_best_version()
381+        d.addCallback(_overwritten)
382+        d.addCallback(lambda data: MutableData(data))
383+        # may trigger an UncoordinatedWriteError, but may not due to #1641
384+        d.addCallback(lambda data: self._node.overwrite(data))
385+        d.addCallback(lambda ignored:
386+            self._node.get_servermap(MODE_CHECK))
387+        def _overwritten_again(smap):
388+            # Make sure that all shares were updated by making sure that
389+            # there aren't any other versions in the sharemap.
390+            self.failUnlessEqual(len(smap.recoverable_versions()), 1)
391+            self.failUnlessEqual(len(smap.unrecoverable_versions()), 0)
392+        d.addCallback(_overwritten_again)
393+        return d
394+
395     def test_bad_server(self):
396         # Break one server, then create the file: the initial publish should
397         # complete with an alternate server. Breaking a second server should
398
399Context:
400
401[docs: how_to_make_a_tahoe-lafs_release.rst add Google+ page to publicity list, change to cute unicode checkboxes
402zooko@zooko.com**20111226151905
403 Ignore-this: c7c1e67761df48fa11c0dad1847c2d8
404]
405[doc: about.rst: use unicode emdash, use non-embedded URIs, add clarificaiton of when a file gets its mutable-or-immutable nature
406zooko@zooko.com**20111206171908
407 Ignore-this: 61bc3f1582c68dcc9867da964fc9bb3a
408 embedded URIs, although documented here:
409 http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#embedded-uris
410 generate messages like this from rst2html --verbose:
411 
412 quickstart.rst:3: (INFO/1) Duplicate explicit target name: "the tahoe-dev mailing list".
413 
414 Also this patch prepends a "utf-8 BOM" to the beginning of the file.
415]
416[minor cleanup: remove trailing spaces in misc/
417Brian Warner <warner@lothar.com>**20111218201841
418 Ignore-this: 69a8904c17d8fd930442d00e24b7b188
419]
420[Tests for ref #1592.
421david-sarah@jacaranda.org**20111217043130
422 Ignore-this: a6713500ebe2d686581c6743b8a88f60
423]
424[test_web.py cleanup: use failUnlessIn/failIfIn in preference to 'in' operator.
425david-sarah@jacaranda.org**20111217042710
426 Ignore-this: c351f4b1d162eca545ba657dc3c70c19
427]
428[Marcus Wanner's favicon patch. fixes #1592
429david-sarah@jacaranda.org**20111217033201
430 Ignore-this: 3528c920379fe0d157441dafe9a7c5a8
431]
432[setup.py: stop putting pyutil.version_class/etc in _version.py
433Brian Warner <warner@lothar.com>**20111205055049
434 Ignore-this: 926fa9a8a34a04f24ee6e006423e9c1
435 
436 allmydata.__version__ can just be a string, it doesn't need to be an instance
437 of some fancy NormalizedVersion class. Everything inside Tahoe uses
438 str(__version__) anyways.
439 
440 Also add .dev0 when a git tree is dirty.
441 
442 Closes #1466
443]
444[setup.py: get version from git or darcs
445Brian Warner <warner@lothar.com>**20111205044001
446 Ignore-this: 5a406b33000446d85edc722298391220
447 
448 This replaces the setup.cfg aliases that run "darcsver" before each major
449 command with the new "update_version". update_version is defined in setup.py,
450 and tries to get a version string from either darcs or git (or leaves the
451 existing _version.py alone if neither VC metadata is available).
452 
453 Also clean up a tiny typo in verlib.py that messed up syntax hilighting.
454]
455[docs/known_issues.rst: describe when the unauthorized access attack is known to be possible, and fix a link.
456david-sarah@jacaranda.org**20111118002013
457 Ignore-this: d89b1f1040a0a7ee0bde893d23612049
458]
459[more tiny buildbot-testing whitespace changes
460warner@lothar.com**20111118002041
461 Ignore-this: e816e2a5ab939e2f7a89ef12b8a157d8
462]
463[more tiny buildbot-testing whitespace changes
464warner@lothar.com**20111118001828
465 Ignore-this: 57bb52cba83ea9a19728ba0a8ffadb69
466]
467[tiny change to exercise the buildbot hook
468warner@lothar.com**20111118001511
469 Ignore-this: 7220b7790b39f19f9721d9e93b755030
470]
471[Strengthen description of unauthorized access attack in known_issues.rst.
472david-sarah@jacaranda.org**20111118000030
473 Ignore-this: e2f68f621fe666b6201542623aa4d182
474]
475[remove remaining uses of nevow's "formless" module
476Brian Warner <warner@lothar.com>**20111117225423
477 Ignore-this: a128dea91a1c63b3bbefa34729344d69
478 
479 We're slowly moving away from Nevow, and marcusw's previous patch removed
480 uses of the formless CSS file, so now we can stop testing that nevow can find
481 that file, and remove the lingering unused "import formless" call.
482]
483[1585-webui.darcs.patch
484Marcus Wanner <marcus@wanners.net>**20111117214923
485 Ignore-this: 23cf2a06c545be5f821c071d652178ee
486]
487[Remove duplicate tahoe_css links from manifest.xhtml and rename-form.xhtml
488Brian Warner <warner@lothar.com>**20111116224225
489 Ignore-this: 12024fff17964607799928928b9aadf3
490 
491 They were probably meant to be links to webform_css, but we aren't really
492 using Nevow's form-generation code anyways, so they can just be removed.
493 Thanks to 'marcusw' for the catch.
494]
495[iputil: handle openbsd5 (just like openbsd4)
496Brian Warner <warner@lothar.com>**20111115220423
497 Ignore-this: 64b28bd2fd06eb5230ea41d91540dd05
498 
499 Patch by 'sickness'. Closes #1584
500]
501[Makefile count-lines: let it work on OS-X (-l not --lines), add XXX
502Brian Warner <warner@lothar.com>**20111109184227
503 Ignore-this: 204ace1dadc9ed27543c62965b4e6757
504 
505 OS-X's simple-minded /usr/bin/wc doesn't understand --lines, but everyone
506 understands -l .
507]
508[setup.py: umask=022 for 'sdist', to avoid depending on environment
509Brian Warner <warner@lothar.com>**20111109183632
510 Ignore-this: acd5db88ba8f1972d618b14f9e5b803c
511 
512 The new tarball-building buildslave had a bogus umask set, causing the 1.9.0
513 tarballs to be non-other-user-readable (go-rwx), which is a hassle for
514 packaging. (The umask was correct on the old buildslave, but it was moved to
515 a new host shortly before the release). This should make sure tarballs are
516 correct despite the host's setting.
517 
518 Note to others: processes run under twistd get umask=077 unless you arrange
519 otherwise.
520]
521[_auto_deps.py: blacklist PyCrypto 2.4.
522david-sarah@jacaranda.org**20111105022457
523 Ignore-this: 876cb24bc71589e735f48bf449cad81e
524]
525[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
526david-sarah@jacaranda.org**20111009050301
527 Ignore-this: 62ee03f4b8a96c292e75c097ad87d52e
528]
529[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
530david-sarah@jacaranda.org**20111009045023
531 Ignore-this: f49ece515620081da1d745ae6da19d21
532]
533[check-miscaptures.py: Python doesn't really have declarations; report the topmost assignment. refs #1555
534david-sarah@jacaranda.org**20111009044800
535 Ignore-this: 4905c9dfe7726f433333e216a6760a4b
536]
537[check-miscaptures.py: handle destructuring function arguments correctly. refs #1555
538david-sarah@jacaranda.org**20111009044710
539 Ignore-this: f9de7d95e94446507a206c88d3f98a23
540]
541[check-miscaptures.py: check while loops and list comprehensions as well as for loops. Also fix a pyflakes warning. refs #1555
542david-sarah@jacaranda.org**20111009044022
543 Ignore-this: 6526e4e315ca6461b1fbc2da5568e444
544]
545[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
546david-sarah@jacaranda.org**20111007074121
547 Ignore-this: 51318e9678d132c374ea557ab955e79e
548]
549[Fix pyflakes warnings in misc/ directories other than misc/build_helpers. refs #1557
550david-sarah@jacaranda.org**20111007033031
551 Ignore-this: 7daf5862469732d8cabc355266622b74
552]
553[Makefile: include misc/ directories other than misc/build_helpers in SOURCES. refs #1557
554david-sarah@jacaranda.org**20111007032958
555 Ignore-this: 31376ec01401df7972e83341dc65aa05
556]
557[show-tool-versions: tolerate missing setuptools
558Brian Warner <warner@lothar.com>**20111101080010
559 Ignore-this: 72d4e440565273992beb4f010cbca699
560]
561[show-tool-versions.py: condense output, hide file-not-found exceptions
562Brian Warner <warner@lothar.com>**20111101074532
563 Ignore-this: a15381a76077ef46a74a4ac40c9ae956
564]
565[relnotes.txt: fix footnotes
566Brian Warner <warner@lothar.com>**20111101071935
567 Ignore-this: 668c1bd8618e21beed9bc6b23f048189
568]
569[Rewrite download-status-timeline visualizer ('viz') with d3.js
570Brian Warner <warner@lothar.com>**20111101061821
571 Ignore-this: 6149b027bbae52c559ef5a8167240cab
572 
573 * use d3.js v2.4.6
574 * add a "toggle misc events" button, to get hash/bitmap-checking details
575 * only draw data that's on screen, for speed
576 * add fragment-arg to fetch timeline data.json from somewhere else
577]
578[IServer refactoring: pass IServer instances around, instead of peerids
579Brian Warner <warner@lothar.com>**20111101040319
580 Ignore-this: 35e4698a0273a0311fe0ccedcc7881b5
581 
582 refs #1363
583 
584 This collapses 88 small incremental changes (each of which passes all tests)
585 into one big patch. The development process for the long path started with
586 adding some temporary scaffolding, changing one method at a time, then
587 removing the scaffolding. The individual pieces are as follows, in reverse
588 chronological order (the first patch is at the end of this comment):
589 
590  commit 9bbe4174fd0d98a6cf47a8ef96e85d9ef34b2f9a
591  Author: Brian Warner <warner@lothar.com>
592  Date:   Tue Oct 4 16:05:00 2011 -0400
593 
594      immutable/downloader/status.py: correct comment
595 
596   src/allmydata/immutable/downloader/status.py |    2 +-
597   1 files changed, 1 insertions(+), 1 deletions(-)
598 
599  commit 72146a7c7c91eac2f7c3ceb801eb7a1721376889
600  Author: Brian Warner <warner@lothar.com>
601  Date:   Tue Oct 4 15:46:20 2011 -0400
602 
603      remove temporary ServerMap._storage_broker
604 
605   src/allmydata/mutable/checker.py   |    2 +-
606   src/allmydata/mutable/filenode.py  |    2 +-
607   src/allmydata/mutable/publish.py   |    2 +-
608   src/allmydata/mutable/servermap.py |    5 ++---
609   src/allmydata/test/test_mutable.py |    8 ++++----
610   5 files changed, 9 insertions(+), 10 deletions(-)
611 
612  commit d703096b41632c47d76414b12672e076a422ff5c
613  Author: Brian Warner <warner@lothar.com>
614  Date:   Tue Oct 4 15:37:05 2011 -0400
615 
616      remove temporary storage_broker.get_server_for_id()
617 
618   src/allmydata/storage_client.py  |    3 ---
619   src/allmydata/test/no_network.py |   13 -------------
620   2 files changed, 0 insertions(+), 16 deletions(-)
621 
622  commit 620cc5d80882ef6f7decfd26af8a6c7c1ddf80d1
623  Author: Brian Warner <warner@lothar.com>
624  Date:   Tue Oct 4 12:50:06 2011 -0400
625 
626      API of Retrieve._try_to_validate_privkey(), trying to remove reader.server
627 
628   src/allmydata/mutable/retrieve.py |   10 +++++-----
629   1 files changed, 5 insertions(+), 5 deletions(-)
630 
631  commit 92f43f856f4a8b36c207d1b190ed8699b5a4ecb4
632  Author: Brian Warner <warner@lothar.com>
633  Date:   Tue Oct 4 12:48:08 2011 -0400
634 
635      API of Retrieve._validate_block(), trying to remove reader.server
636 
637   src/allmydata/mutable/retrieve.py |   14 +++++++-------
638   1 files changed, 7 insertions(+), 7 deletions(-)
639 
640  commit 572d5070761861a2190349d1ed8d85dbc25698a5
641  Author: Brian Warner <warner@lothar.com>
642  Date:   Tue Oct 4 12:36:58 2011 -0400
643 
644      API of Retrieve._mark_bad_share(), trying to remove reader.server
645 
646   src/allmydata/mutable/retrieve.py |   21 +++++++++------------
647   1 files changed, 9 insertions(+), 12 deletions(-)
648 
649  commit a793ff00c0de1e2eec7b46288fdf388c7a2bec89
650  Author: Brian Warner <warner@lothar.com>
651  Date:   Tue Oct 4 12:06:13 2011 -0400
652 
653      remove now-unused get_rref_for_serverid()
654 
655   src/allmydata/mutable/servermap.py |    3 ---
656   1 files changed, 0 insertions(+), 3 deletions(-)
657 
658  commit 1b9827cc9366bf90b93297fdd6832f2ad0480ce7
659  Author: Brian Warner <warner@lothar.com>
660  Date:   Tue Oct 4 12:03:09 2011 -0400
661 
662      Retrieve: stop adding .serverid attributes to readers
663 
664   src/allmydata/mutable/retrieve.py |    1 -
665   1 files changed, 0 insertions(+), 1 deletions(-)
666 
667  commit 5d4e9d491b19e49d2e443a1dfff2c672842c36ef
668  Author: Brian Warner <warner@lothar.com>
669  Date:   Tue Oct 4 12:03:34 2011 -0400
670 
671      return value of Retrieve(verify=True)
672 
673   src/allmydata/mutable/checker.py  |   11 ++++++-----
674   src/allmydata/mutable/retrieve.py |    3 +--
675   2 files changed, 7 insertions(+), 7 deletions(-)
676 
677  commit e9ab7978c384e1f677cb7779dc449b1044face82
678  Author: Brian Warner <warner@lothar.com>
679  Date:   Tue Oct 4 11:54:23 2011 -0400
680 
681      Retrieve._bad_shares (but not return value, used by Verifier)
682 
683   src/allmydata/mutable/retrieve.py |    7 ++++---
684   1 files changed, 4 insertions(+), 3 deletions(-)
685 
686  commit 2d91926de233ec5c881f30e36b4a30ad92ab42a9
687  Author: Brian Warner <warner@lothar.com>
688  Date:   Tue Oct 4 11:51:23 2011 -0400
689 
690      Publish: stop adding .serverid attributes to writers
691 
692   src/allmydata/mutable/publish.py |    9 ++-------
693   1 files changed, 2 insertions(+), 7 deletions(-)
694 
695  commit 47c7a0105dec7cbf4f7e0a3ce800bbb85b15df4a
696  Author: Brian Warner <warner@lothar.com>
697  Date:   Tue Oct 4 11:56:33 2011 -0400
698 
699      API of get_write_enabler()
700 
701   src/allmydata/mutable/filenode.py |    7 ++++---
702   src/allmydata/mutable/publish.py  |    4 ++--
703   src/allmydata/test/no_network.py  |    3 +++
704   3 files changed, 9 insertions(+), 5 deletions(-)
705 
706  commit 9196a5c6590fdbfd660325ea8358b345887d3db0
707  Author: Brian Warner <warner@lothar.com>
708  Date:   Tue Oct 4 11:46:24 2011 -0400
709 
710      API of get_(renewal|cancel)_secret()
711 
712   src/allmydata/mutable/filenode.py  |   14 ++++++++------
713   src/allmydata/mutable/publish.py   |    8 ++++----
714   src/allmydata/mutable/servermap.py |    5 ++---
715   3 files changed, 14 insertions(+), 13 deletions(-)
716 
717  commit de7c1552f8c163eff5b6d820b5fb3b21c1b47cb5
718  Author: Brian Warner <warner@lothar.com>
719  Date:   Tue Oct 4 11:41:52 2011 -0400
720 
721      API of CorruptShareError. Also comment out some related+unused test_web.py code
722 
723   src/allmydata/mutable/common.py    |   13 +++++--------
724   src/allmydata/mutable/retrieve.py  |   10 +++++-----
725   src/allmydata/mutable/servermap.py |    8 +++-----
726   src/allmydata/test/common.py       |   13 ++++++++-----
727   4 files changed, 21 insertions(+), 23 deletions(-)
728 
729  commit 2c1c314046b620c16f1e66d030c150d768b7d01e
730  Author: Brian Warner <warner@lothar.com>
731  Date:   Tue Oct 4 12:01:46 2011 -0400
732 
733      API of ServerMap.mark_bad_share()
734 
735   src/allmydata/mutable/publish.py   |    2 +-
736   src/allmydata/mutable/retrieve.py  |    6 +++---
737   src/allmydata/mutable/servermap.py |    6 ++----
738   src/allmydata/test/test_mutable.py |    3 +--
739   4 files changed, 7 insertions(+), 10 deletions(-)
740 
741  commit 1bed349030779fd0c378ae4e821384f953c6f6ff
742  Author: Brian Warner <warner@lothar.com>
743  Date:   Tue Oct 4 11:11:17 2011 -0400
744 
745      API+name of ServerMap.shares_on_server() : only for tests, so debug_ prefix
746 
747   src/allmydata/mutable/servermap.py |    7 ++-----
748   src/allmydata/test/test_mutable.py |    6 +++---
749   2 files changed, 5 insertions(+), 8 deletions(-)
750 
751  commit 2d32e448677d6b818692e801045d4115b29abf21
752  Author: Brian Warner <warner@lothar.com>
753  Date:   Tue Oct 4 11:07:10 2011 -0400
754 
755      API of ServerMap.all_servers_for_version()
756 
757   src/allmydata/mutable/servermap.py |    4 ++--
758   1 files changed, 2 insertions(+), 2 deletions(-)
759 
760  commit 48f3204d1889c3e7179578125c4bdef515af3d6a
761  Author: Brian Warner <warner@lothar.com>
762  Date:   Tue Oct 4 11:04:50 2011 -0400
763 
764      internals of ServerMap methods that use make_versionmap(), remove temp copy
765 
766   src/allmydata/mutable/servermap.py |   28 +++++++++----------------
767   1 files changed, 10 insertions(+), 18 deletions(-)
768 
769  commit 5c3da77b6c777a145bd5ddfaa4db849dc9495548
770  Author: Brian Warner <warner@lothar.com>
771  Date:   Tue Oct 4 11:01:28 2011 -0400
772 
773      API of ServerMap.make_versionmap()
774 
775   src/allmydata/mutable/checker.py   |    4 ++--
776   src/allmydata/mutable/retrieve.py  |    5 ++---
777   src/allmydata/mutable/servermap.py |    4 ++--
778   src/allmydata/test/test_mutable.py |    7 ++++---
779   4 files changed, 10 insertions(+), 10 deletions(-)
780 
781  commit b6882ece49afb4c507d118af2db346fa329209dc
782  Author: Brian Warner <warner@lothar.com>
783  Date:   Tue Oct 4 10:53:38 2011 -0400
784 
785      make a copy of ServerMap.make_versionmap() (_make_versionmap2) for internal use
786 
787   src/allmydata/mutable/servermap.py |   18 +++++++++++++-----
788   1 files changed, 13 insertions(+), 5 deletions(-)
789 
790  commit 963f8e63faf32b950eb1b8103cd2ff16fe8f0151
791  Author: Brian Warner <warner@lothar.com>
792  Date:   Tue Oct 4 00:45:58 2011 -0400
793 
794      API of RetrieveStatus.add_problem()
795 
796   src/allmydata/mutable/retrieve.py |    5 +++--
797   1 files changed, 3 insertions(+), 2 deletions(-)
798 
799  commit 4976d29ffae565a048851601c29013bbae2976d8
800  Author: Brian Warner <warner@lothar.com>
801  Date:   Tue Oct 4 00:45:05 2011 -0400
802 
803      API of RetrieveStatus.add_fetch_timing()
804 
805   src/allmydata/mutable/retrieve.py |    5 +++--
806   1 files changed, 3 insertions(+), 2 deletions(-)
807 
808  commit d057d3bbba72663ee148a8b916bc2d52be2e3982
809  Author: Brian Warner <warner@lothar.com>
810  Date:   Tue Oct 4 00:44:04 2011 -0400
811 
812      API of Retrieve.notify_server_corruption()
813 
814   src/allmydata/mutable/retrieve.py |    6 +++---
815   1 files changed, 3 insertions(+), 3 deletions(-)
816 
817  commit 8a2a81e46671c860610e0e96d6add1a57551f22d
818  Author: Brian Warner <warner@lothar.com>
819  Date:   Tue Oct 4 00:42:32 2011 -0400
820 
821      remove unused _outstanding_queries
822 
823   src/allmydata/mutable/retrieve.py |    1 -
824   1 files changed, 0 insertions(+), 1 deletions(-)
825 
826  commit 56d12cc9968d03ccd53764455c671122c4f391d1
827  Author: Brian Warner <warner@lothar.com>
828  Date:   Tue Oct 4 00:40:57 2011 -0400
829 
830      change Retrieve.remaining_sharemap
831 
832   src/allmydata/mutable/retrieve.py |    4 ++--
833   1 files changed, 2 insertions(+), 2 deletions(-)
834 
835  commit 4f0b7af4821f43290bfc70f2b1fc30149ad81281
836  Author: Brian Warner <warner@lothar.com>
837  Date:   Tue Oct 4 10:40:18 2011 -0400
838 
839      accessor for PublishStatus._problems
840 
841   src/allmydata/mutable/publish.py |    4 +++-
842   src/allmydata/web/status.py      |    2 +-
843   2 files changed, 4 insertions(+), 2 deletions(-)
844 
845  commit 627087cf66d0b8cc519f4d551a967a7bd9b6a741
846  Author: Brian Warner <warner@lothar.com>
847  Date:   Tue Oct 4 10:36:39 2011 -0400
848 
849      accessor for RetrieveStatus._problems
850 
851   src/allmydata/mutable/retrieve.py |    8 ++++++--
852   src/allmydata/web/status.py       |    2 +-
853   2 files changed, 7 insertions(+), 3 deletions(-)
854 
855  commit ca7dea81f03801b1c7353fc00ecba689268109cf
856  Author: Brian Warner <warner@lothar.com>
857  Date:   Tue Oct 4 00:35:32 2011 -0400
858 
859      add .server to "reader", so we can get at it later
860 
861   src/allmydata/mutable/retrieve.py |    5 +++--
862   1 files changed, 3 insertions(+), 2 deletions(-)
863 
864  commit 6ef516e24908ec195af084a7550d1921a5e983b0
865  Author: Brian Warner <warner@lothar.com>
866  Date:   Tue Oct 4 00:32:32 2011 -0400
867 
868      temporarily give Retrieve a _storage_broker, so it can map serverids to servers
869 
870   src/allmydata/mutable/checker.py   |    3 ++-
871   src/allmydata/mutable/filenode.py  |    6 ++++--
872   src/allmydata/mutable/retrieve.py  |    5 +++--
873   src/allmydata/test/test_mutable.py |    4 ++--
874   4 files changed, 11 insertions(+), 7 deletions(-)
875 
876  commit afe08e4dd3f4ff9ff7e8a2a8d28b181e3625bcc9
877  Author: Brian Warner <warner@lothar.com>
878  Date:   Tue Oct 4 00:21:51 2011 -0400
879 
880      mutable/retrieve.py: s/peer/server/
881 
882   src/allmydata/mutable/retrieve.py  |   82 +++++++++++++-------------
883   src/allmydata/test/test_mutable.py |    6 +-
884   2 files changed, 44 insertions(+), 44 deletions(-)
885 
886  commit 910afcb5d7f274880f68dd6cdb5b05f2bbc29adc
887  Author: Brian Warner <warner@lothar.com>
888  Date:   Tue Oct 4 00:16:01 2011 -0400
889 
890      web.status.PublishStatusPage: add comment, I think .problems isn't exercised
891 
892   src/allmydata/web/status.py |    2 ++
893   1 files changed, 2 insertions(+), 0 deletions(-)
894 
895  commit 311466dd8c931bbba40d590ade867704282e7f1a
896  Author: Brian Warner <warner@lothar.com>
897  Date:   Mon Oct 3 23:48:16 2011 -0400
898 
899      API of PublishStatus.add_per_server_time()
900 
901   src/allmydata/mutable/publish.py |    5 +++--
902   1 files changed, 3 insertions(+), 2 deletions(-)
903 
904  commit 2df5faa1b6cbfbaded520d2320305a62fe961118
905  Author: Brian Warner <warner@lothar.com>
906  Date:   Mon Oct 3 23:46:37 2011 -0400
907 
908      more simplifications
909 
910   src/allmydata/mutable/publish.py |    4 +---
911   1 files changed, 1 insertions(+), 3 deletions(-)
912 
913  commit 6ac4544a3da385f2aad9392f906b90192f4f919a
914  Author: Brian Warner <warner@lothar.com>
915  Date:   Mon Oct 3 23:44:08 2011 -0400
916 
917      API of ServerMap.version_on_server()
918 
919   src/allmydata/mutable/publish.py   |    2 +-
920   src/allmydata/mutable/servermap.py |    4 ++--
921   src/allmydata/test/test_mutable.py |    5 ++---
922   3 files changed, 5 insertions(+), 6 deletions(-)
923 
924  commit 3e187e322511072e4683329df6b2c6c733a66dba
925  Author: Brian Warner <warner@lothar.com>
926  Date:   Tue Oct 4 00:16:32 2011 -0400
927 
928      API of ServerMap.make_sharemap()
929 
930   src/allmydata/mutable/servermap.py |    4 ++--
931   src/allmydata/test/test_mutable.py |    7 ++++---
932   src/allmydata/web/status.py        |    4 ++--
933   3 files changed, 8 insertions(+), 7 deletions(-)
934 
935  commit 318feed8437bdd8d4943c6569d38f7b54b6313cc
936  Author: Brian Warner <warner@lothar.com>
937  Date:   Mon Oct 3 23:36:19 2011 -0400
938 
939      small cleanups
940 
941   src/allmydata/mutable/publish.py |    4 ++--
942   1 files changed, 2 insertions(+), 2 deletions(-)
943 
944  commit bd459ed5714e1db5a7163935c54b7b0b56db8349
945  Author: Brian Warner <warner@lothar.com>
946  Date:   Mon Oct 3 23:33:39 2011 -0400
947 
948      API of ServerMap.add_new_share()
949 
950   src/allmydata/mutable/publish.py   |    4 ++--
951   src/allmydata/mutable/servermap.py |    6 ++----
952   2 files changed, 4 insertions(+), 6 deletions(-)
953 
954  commit f2804fb6ed11d80088e0da8ed48e6c2922f2ffef
955  Author: Brian Warner <warner@lothar.com>
956  Date:   Mon Oct 3 23:30:26 2011 -0400
957 
958      API of ServerMap.get_bad_shares()
959 
960   src/allmydata/mutable/publish.py   |    3 +--
961   src/allmydata/mutable/servermap.py |    9 ++++-----
962   2 files changed, 5 insertions(+), 7 deletions(-)
963 
964  commit 965074a47b3ce1431cb46d9a233840afcf9105f5
965  Author: Brian Warner <warner@lothar.com>
966  Date:   Mon Oct 3 23:26:58 2011 -0400
967 
968      more small cleanups
969 
970   src/allmydata/mutable/publish.py |    6 +++---
971   1 files changed, 3 insertions(+), 3 deletions(-)
972 
973  commit 38020da34f034f8889947dd3dc05e087ffff7106
974  Author: Brian Warner <warner@lothar.com>
975  Date:   Mon Oct 3 23:18:47 2011 -0400
976 
977      change Publish.bad_share_checkstrings
978 
979   src/allmydata/mutable/publish.py |    6 +++---
980   1 files changed, 3 insertions(+), 3 deletions(-)
981 
982  commit 5efebcbd2ee0c2f299ea86f7591d856c0f265304
983  Author: Brian Warner <warner@lothar.com>
984  Date:   Mon Oct 3 23:16:31 2011 -0400
985 
986      change internals of Publish.update_goal()
987 
988   src/allmydata/mutable/publish.py |    8 +++-----
989   1 files changed, 3 insertions(+), 5 deletions(-)
990 
991  commit e91b55ff4c2a69165b71f2c7b217ac319ff4c527
992  Author: Brian Warner <warner@lothar.com>
993  Date:   Mon Oct 3 23:11:42 2011 -0400
994 
995      get rid of Publish.connections
996 
997   src/allmydata/mutable/publish.py |   27 +++++----------------------
998   1 files changed, 5 insertions(+), 22 deletions(-)
999 
1000  commit 64e9a53b3229ebe2f9ebf7ed502d539311d0e037
1001  Author: Brian Warner <warner@lothar.com>
1002  Date:   Mon Oct 3 23:05:32 2011 -0400
1003 
1004      change Publish.bad_servers
1005 
1006   src/allmydata/mutable/publish.py |   10 +++++-----
1007   1 files changed, 5 insertions(+), 5 deletions(-)
1008 
1009  commit b85a934bef315a06bcfe00c9c12a3627fed2b918
1010  Author: Brian Warner <warner@lothar.com>
1011  Date:   Mon Oct 3 23:03:07 2011 -0400
1012 
1013      Publish.bad_servers: fix bug, this should be a set of serverids, not writers
1014 
1015   src/allmydata/mutable/publish.py |    2 +-
1016   1 files changed, 1 insertions(+), 1 deletions(-)
1017 
1018  commit 605ea15ec15ed671513819003ccd211cdb9761e0
1019  Author: Brian Warner <warner@lothar.com>
1020  Date:   Mon Oct 3 23:00:21 2011 -0400
1021 
1022      change .placed
1023 
1024   src/allmydata/mutable/publish.py |    6 +++---
1025   1 files changed, 3 insertions(+), 3 deletions(-)
1026 
1027  commit f7aba37b1b345d5b6d5cb16e3b3f6f3c1afb658e
1028  Author: Brian Warner <warner@lothar.com>
1029  Date:   Mon Oct 3 22:59:22 2011 -0400
1030 
1031      temporarily stash IServer as .server on the "writer" object
1032 
1033   src/allmydata/mutable/publish.py |    2 ++
1034   1 files changed, 2 insertions(+), 0 deletions(-)
1035 
1036  commit f9b551d788e7db1f187fce5ab98ab5d5fe4e1c36
1037  Author: Brian Warner <warner@lothar.com>
1038  Date:   Mon Oct 3 22:48:18 2011 -0400
1039 
1040      change Publish.goal and API of log_goal() to use IServer, not serverid
1041 
1042   src/allmydata/mutable/publish.py |   48 ++++++++++++++--------------
1043   1 files changed, 24 insertions(+), 24 deletions(-)
1044 
1045  commit 75f20616558e4900b8b1f685dd99aa838de6d452
1046  Author: Brian Warner <warner@lothar.com>
1047  Date:   Mon Oct 3 15:27:02 2011 -0400
1048 
1049      API of ServerMap.get_known_shares()
1050 
1051   src/allmydata/mutable/publish.py   |   16 ++++++++++------
1052   src/allmydata/mutable/servermap.py |    7 ++-----
1053   2 files changed, 12 insertions(+), 11 deletions(-)
1054 
1055  commit 1c38c9d37bb08221b4418762234b1a62397b3b4b
1056  Author: Brian Warner <warner@lothar.com>
1057  Date:   Mon Oct 3 15:20:29 2011 -0400
1058 
1059      Publish.full_serverlist
1060 
1061   src/allmydata/mutable/publish.py |   10 +++++-----
1062   1 files changed, 5 insertions(+), 5 deletions(-)
1063 
1064  commit b6cbd215a04b9cde31a7d92a97a7f048622b16f1
1065  Author: Brian Warner <warner@lothar.com>
1066  Date:   Mon Oct 3 15:12:31 2011 -0400
1067 
1068      API of ServerMap.all_servers()
1069 
1070   src/allmydata/mutable/servermap.py |   19 ++++++-------------
1071   1 files changed, 6 insertions(+), 13 deletions(-)
1072 
1073  commit e63cd0315fae65357b1727ec6d5ff3c6e0d27c98
1074  Author: Brian Warner <warner@lothar.com>
1075  Date:   Mon Oct 3 15:10:18 2011 -0400
1076 
1077      remove ServerMap.connections, set_rref_for_serverid()
1078 
1079   src/allmydata/mutable/servermap.py |   11 +----------
1080   1 files changed, 1 insertions(+), 10 deletions(-)
1081 
1082  commit 4df52db2f80eb12eefa5d57103c24893cde89553
1083  Author: Brian Warner <warner@lothar.com>
1084  Date:   Mon Oct 3 15:04:06 2011 -0400
1085 
1086      API of ServerMap.mark_server_reachable()
1087 
1088   src/allmydata/mutable/servermap.py |    7 ++-----
1089   1 files changed, 2 insertions(+), 5 deletions(-)
1090 
1091  commit 69c715bde77944dc25181b3dbbeb042c816f9a1b
1092  Author: Brian Warner <warner@lothar.com>
1093  Date:   Mon Oct 3 15:03:21 2011 -0400
1094 
1095      API of ServerMap.mark_server_unreachable()
1096 
1097   src/allmydata/mutable/servermap.py |    9 +++------
1098   1 files changed, 3 insertions(+), 6 deletions(-)
1099 
1100  commit 3d784d60eec1c508858e3a617e4411ffbcc3c1fa
1101  Author: Brian Warner <warner@lothar.com>
1102  Date:   Mon Oct 3 15:02:03 2011 -0400
1103 
1104      API of status.set_privkey_from()
1105 
1106   src/allmydata/mutable/servermap.py |    7 +++----
1107   1 files changed, 3 insertions(+), 4 deletions(-)
1108 
1109  commit 544ed3ea29bed7e66da7fd29ca3f6f076f27a9e6
1110  Author: Brian Warner <warner@lothar.com>
1111  Date:   Mon Oct 3 15:01:15 2011 -0400
1112 
1113      API of status.add_per_server_time()
1114 
1115   src/allmydata/mutable/servermap.py |    7 ++++---
1116   1 files changed, 4 insertions(+), 3 deletions(-)
1117 
1118  commit fffe5008b6320bd1e04c3c68389a2bf2ee383fa8
1119  Author: Brian Warner <warner@lothar.com>
1120  Date:   Mon Oct 3 14:59:02 2011 -0400
1121 
1122      remove unused .versionmap
1123 
1124   src/allmydata/mutable/servermap.py |    7 -------
1125   1 files changed, 0 insertions(+), 7 deletions(-)
1126 
1127  commit 2816562e090d2294179db3588dafcca18de1bc2b
1128  Author: Brian Warner <warner@lothar.com>
1129  Date:   Mon Oct 3 14:57:51 2011 -0400
1130 
1131      remove serverid from all log messages. Also one unused lambda.
1132 
1133   src/allmydata/mutable/servermap.py |   30 +++++++++++++-------------
1134   1 files changed, 15 insertions(+), 15 deletions(-)
1135 
1136  commit 28fa6b1a2738fa98c1f1dbd3d0e01ae98912d11f
1137  Author: Brian Warner <warner@lothar.com>
1138  Date:   Mon Oct 3 14:54:30 2011 -0400
1139 
1140      removed unused _readers
1141 
1142   src/allmydata/mutable/servermap.py |    3 ---
1143   1 files changed, 0 insertions(+), 3 deletions(-)
1144 
1145  commit a8e4ed3d645ab592d1add6a1e69b6d1ebfb77817
1146  Author: Brian Warner <warner@lothar.com>
1147  Date:   Mon Oct 3 14:54:16 2011 -0400
1148 
1149      remove unused _sharemap
1150 
1151   src/allmydata/mutable/servermap.py |    1 -
1152   1 files changed, 0 insertions(+), 1 deletions(-)
1153 
1154  commit 3f072e55cf1d0700f9fffe23f8f3a475725df588
1155  Author: Brian Warner <warner@lothar.com>
1156  Date:   Mon Oct 3 14:49:03 2011 -0400
1157 
1158      _must_query
1159 
1160   src/allmydata/mutable/servermap.py |    8 ++++----
1161   1 files changed, 4 insertions(+), 4 deletions(-)
1162 
1163  commit c599a059b8df3f5785e4bf89fb6ecc6d8dcd708b
1164  Author: Brian Warner <warner@lothar.com>
1165  Date:   Mon Oct 3 14:48:05 2011 -0400
1166 
1167      _queries_outstanding
1168 
1169   src/allmydata/mutable/servermap.py |   16 +++++++---------
1170   1 files changed, 7 insertions(+), 9 deletions(-)
1171 
1172  commit 7743759f98ac2c07926b2fdbd80bf52dfab33085
1173  Author: Brian Warner <warner@lothar.com>
1174  Date:   Mon Oct 3 14:46:17 2011 -0400
1175 
1176      _empty_servers
1177 
1178   src/allmydata/mutable/servermap.py |    5 ++---
1179   1 files changed, 2 insertions(+), 3 deletions(-)
1180 
1181  commit 6bb1825916828a713a32cdf7f7411fa3ea2e1e5d
1182  Author: Brian Warner <warner@lothar.com>
1183  Date:   Mon Oct 3 14:45:39 2011 -0400
1184 
1185      _good_servers
1186 
1187   src/allmydata/mutable/servermap.py |    4 ++--
1188   1 files changed, 2 insertions(+), 2 deletions(-)
1189 
1190  commit 1768fab1b51d8dd93ecabbaaabfadfa20cf6c3d4
1191  Author: Brian Warner <warner@lothar.com>
1192  Date:   Mon Oct 3 14:44:59 2011 -0400
1193 
1194      _bad_servers
1195 
1196   src/allmydata/mutable/servermap.py |   14 +++++++-------
1197   1 files changed, 7 insertions(+), 7 deletions(-)
1198 
1199  commit dccbaef30f0ba714c746bf6d4a1a803c36e17b65
1200  Author: Brian Warner <warner@lothar.com>
1201  Date:   Mon Oct 3 14:41:54 2011 -0400
1202 
1203      API of _try_to_set_pubkey()
1204 
1205   src/allmydata/mutable/servermap.py |    7 ++++---
1206   1 files changed, 4 insertions(+), 3 deletions(-)
1207 
1208  commit 0481ea70042ba3575f15eac7fd0780f8ece580cc
1209  Author: Brian Warner <warner@lothar.com>
1210  Date:   Mon Oct 3 14:35:02 2011 -0400
1211 
1212      API of notify_server_corruption()
1213 
1214   src/allmydata/mutable/servermap.py |    6 +++---
1215   1 files changed, 3 insertions(+), 3 deletions(-)
1216 
1217  commit bea9cba18fb3b9c11bb22f18356a263ecec7351e
1218  Author: Brian Warner <warner@lothar.com>
1219  Date:   Mon Oct 3 14:34:09 2011 -0400
1220 
1221      API of _got_signature_one_share()
1222 
1223   src/allmydata/mutable/servermap.py |    9 +++++----
1224   1 files changed, 5 insertions(+), 4 deletions(-)
1225 
1226  commit 1520123583cf78650706e114b15bb5b0ac1f4a14
1227  Author: Brian Warner <warner@lothar.com>
1228  Date:   Mon Oct 3 14:32:33 2011 -0400
1229 
1230      API of _try_to_validate_privkey()
1231 
1232   src/allmydata/mutable/servermap.py |    9 +++++----
1233   1 files changed, 5 insertions(+), 4 deletions(-)
1234 
1235  commit 938852c9c8519c7a078f58a9b1f4dd8ec8b6715e
1236  Author: Brian Warner <warner@lothar.com>
1237  Date:   Mon Oct 3 14:31:48 2011 -0400
1238 
1239      API and internals of _add_lease_failed()
1240 
1241   src/allmydata/mutable/servermap.py |    8 ++++----
1242   1 files changed, 4 insertions(+), 4 deletions(-)
1243 
1244  commit 3843dba367e3c19e176a622ab853cb51d2472ddf
1245  Author: Brian Warner <warner@lothar.com>
1246  Date:   Mon Oct 3 14:30:37 2011 -0400
1247 
1248      API of _privkey_query_failed()
1249 
1250   src/allmydata/mutable/servermap.py |    5 +++--
1251   1 files changed, 3 insertions(+), 2 deletions(-)
1252 
1253  commit 2219a710e1633cd57d0ca0786490de87b3e19ba7
1254  Author: Brian Warner <warner@lothar.com>
1255  Date:   Mon Oct 3 14:29:43 2011 -0400
1256 
1257      fix bug in call to _privkey_query_failed, unrelated to refactoring
1258 
1259   src/allmydata/mutable/servermap.py |    2 +-
1260   1 files changed, 1 insertions(+), 1 deletions(-)
1261 
1262  commit ae615bec7d0d1b269710b6902797b12f9592ad62
1263  Author: Brian Warner <warner@lothar.com>
1264  Date:   Mon Oct 3 14:27:17 2011 -0400
1265 
1266      API of _got_corrupt_share()
1267 
1268   src/allmydata/mutable/servermap.py |   17 +++++++++--------
1269   1 files changed, 9 insertions(+), 8 deletions(-)
1270 
1271  commit cb51c95a6f4e077278157a77dab060c8c1ad7a81
1272  Author: Brian Warner <warner@lothar.com>
1273  Date:   Mon Oct 3 14:23:16 2011 -0400
1274 
1275      API of _got_results()
1276 
1277   src/allmydata/mutable/servermap.py |    9 +++++----
1278   1 files changed, 5 insertions(+), 4 deletions(-)
1279 
1280  commit bac9154fe0af18f226999a58ffc2362d8cf4b802
1281  Author: Brian Warner <warner@lothar.com>
1282  Date:   Mon Oct 3 14:19:19 2011 -0400
1283 
1284      API of _query_failed()
1285 
1286   src/allmydata/mutable/servermap.py |    5 +++--
1287   1 files changed, 3 insertions(+), 2 deletions(-)
1288 
1289  commit fdc29a8ca95d4b5c503e5382b9e5d4d02141ba12
1290  Author: Brian Warner <warner@lothar.com>
1291  Date:   Mon Oct 3 14:17:20 2011 -0400
1292 
1293      API of _do_read()
1294 
1295   src/allmydata/mutable/servermap.py |    6 ++++--
1296   1 files changed, 4 insertions(+), 2 deletions(-)
1297 
1298  commit e7e9e338f28d004aa4d423d11c65f1e271ac7322
1299  Author: Brian Warner <warner@lothar.com>
1300  Date:   Mon Oct 3 14:20:21 2011 -0400
1301 
1302      API of _do_query()
1303 
1304   src/allmydata/mutable/servermap.py |   15 +++++++--------
1305   1 files changed, 7 insertions(+), 8 deletions(-)
1306 
1307  commit 330625b9dac4cdbe72a11464a893065b9aeed453
1308  Author: Brian Warner <warner@lothar.com>
1309  Date:   Mon Oct 3 14:43:05 2011 -0400
1310 
1311      next step: first batch of updates to ServermapUpdater
1312 
1313      updates:
1314       most method-local variables in update()
1315       API of _build_initial_querylist()
1316       API of _send_initial_requests()
1317       .full_serverlist
1318       .extra_servers
1319 
1320   src/allmydata/mutable/servermap.py |   39 ++++++++++++++------------
1321   1 files changed, 21 insertions(+), 18 deletions(-)
1322 
1323  commit 4aadc584fa7dcb2daa86b048c81dee0049ba26d9
1324  Author: Brian Warner <warner@lothar.com>
1325  Date:   Mon Oct 3 15:07:00 2011 -0400
1326 
1327      internal change: index _bad_shares with IServer
1328 
1329   src/allmydata/mutable/servermap.py |   20 ++++++++++----------
1330   1 files changed, 10 insertions(+), 10 deletions(-)
1331 
1332  commit 16d4e6fa82a9907dbdc92094213387c6a4164e41
1333  Author: Brian Warner <warner@lothar.com>
1334  Date:   Mon Oct 3 18:20:47 2011 +0100
1335 
1336      internal change: index _known_shares with IServer instead of serverid
1337 
1338      callers are unchanged
1339 
1340   src/allmydata/mutable/servermap.py |   42 +++++++++++++++----------
1341   1 files changed, 25 insertions(+), 17 deletions(-)
1342 
1343  commit ceeb5f4938cc814a0c75d1b8f4018aed965c2176
1344  Author: Brian Warner <warner@lothar.com>
1345  Date:   Mon Oct 3 18:11:43 2011 +0100
1346 
1347      accessors and name cleanup for servermap.Servermap.last_update_mode/time
1348 
1349   src/allmydata/mutable/filenode.py  |    6 +++---
1350   src/allmydata/mutable/publish.py   |    4 ++--
1351   src/allmydata/mutable/servermap.py |   17 +++++++++++------
1352   3 files changed, 16 insertions(+), 11 deletions(-)
1353 
1354  commit 8d3cbda82661c0a7e5c3d3b65cf7a5d5ab7e32c0
1355  Author: Brian Warner <warner@lothar.com>
1356  Date:   Mon Oct 3 18:11:14 2011 +0100
1357 
1358      accessors and name cleanup for servermap.Servermap.problems
1359 
1360   src/allmydata/mutable/servermap.py |   21 +++++++++++++--------
1361   src/allmydata/test/test_mutable.py |    6 +++---
1362   2 files changed, 16 insertions(+), 11 deletions(-)
1363 
1364  commit 348f57988f79389db0aab7672e6eaa9a6d8e3219
1365  Author: Brian Warner <warner@lothar.com>
1366  Date:   Mon Oct 3 18:10:41 2011 +0100
1367 
1368      accessors and name cleanup for servermap.Servermap.bad_shares
1369 
1370   src/allmydata/mutable/publish.py   |    2 +-
1371   src/allmydata/mutable/servermap.py |   30 ++++++++++++++-----------
1372   2 files changed, 18 insertions(+), 14 deletions(-)
1373 
1374  commit 520c9368134673cdf76c653c5e1bb91c2ab5d51e
1375  Author: Brian Warner <warner@lothar.com>
1376  Date:   Mon Oct 3 18:10:05 2011 +0100
1377 
1378      accessors and name cleanup for servermap.Servermap.servermap .
1379 
1380   src/allmydata/mutable/publish.py   |   14 +++++----
1381   src/allmydata/mutable/servermap.py |   38 ++++++++++++++-----------
1382   2 files changed, 29 insertions(+), 23 deletions(-)
1383 
1384  commit b8b8dc38287a91dbdf494426ac801d9381ce5841
1385  Author: Brian Warner <warner@lothar.com>
1386  Date:   Mon Oct 3 18:08:02 2011 +0100
1387 
1388      fix reachable_servers
1389 
1390   src/allmydata/mutable/checker.py   |    3 ++-
1391   src/allmydata/mutable/publish.py   |    4 +++-
1392   src/allmydata/mutable/servermap.py |   12 ++++++++++--
1393   3 files changed, 15 insertions(+), 4 deletions(-)
1394 
1395  commit cb0cfd1adfefad357c187aaaf690c3df68b622bc
1396  Author: Brian Warner <warner@lothar.com>
1397  Date:   Mon Oct 3 18:06:03 2011 +0100
1398 
1399      fix Servermap.unreachable_servers
1400 
1401   src/allmydata/mutable/servermap.py |   11 ++++++++---
1402   1 files changed, 8 insertions(+), 3 deletions(-)
1403 
1404  commit 2d9ea79b94bd4db674d40386fda90825785ac495
1405  Author: Brian Warner <warner@lothar.com>
1406  Date:   Mon Oct 3 18:03:48 2011 +0100
1407 
1408      give ServerMap a StorageFarmBroker, temporary
1409 
1410      this makes it possible for the ServerMap to accept bare serverids and still
1411      build data structures with IServers
1412 
1413   src/allmydata/mutable/checker.py   |    2 +-
1414   src/allmydata/mutable/filenode.py  |    2 +-
1415   src/allmydata/mutable/publish.py   |    2 +-
1416   src/allmydata/mutable/servermap.py |    5 +++--
1417   src/allmydata/test/test_mutable.py |    8 ++++----
1418   5 files changed, 10 insertions(+), 9 deletions(-)
1419 
1420  commit 718d1aeff6fded893f65397806d22ece928b0dd4
1421  Author: Brian Warner <warner@lothar.com>
1422  Date:   Mon Oct 3 13:43:30 2011 -0400
1423 
1424      add StorageFarmBroker.get_server_for_id(), temporary helper
1425 
1426      This will go away once we're passing IServers everywhere.
1427 
1428   src/allmydata/storage_client.py  |    2 ++
1429   src/allmydata/test/no_network.py |   13 +++++++++++++
1430   2 files changed, 15 insertions(+), 0 deletions(-)
1431 
1432  commit ece20231d7fda0d503704842a4aa068dfbc2e54e
1433  Author: Brian Warner <warner@lothar.com>
1434  Date:   Sun Oct 2 01:11:50 2011 +0100
1435 
1436      add proper accessors for Servermap.connections, to make refactoring easier
1437 
1438   src/allmydata/mutable/publish.py   |    6 +++---
1439   src/allmydata/mutable/retrieve.py  |   10 +++++-----
1440   src/allmydata/mutable/servermap.py |   17 +++++++++++------
1441   3 files changed, 19 insertions(+), 14 deletions(-)
1442 
1443  commit 3b943d6bf302ff702668081a612fc4fe2604cf9c
1444  Author: Brian Warner <warner@lothar.com>
1445  Date:   Fri Sep 23 10:34:30 2011 -0700
1446 
1447      mutable/servermap.py and neighbors: s/peer/server/
1448 
1449   src/allmydata/mutable/checker.py   |   22 +-
1450   src/allmydata/mutable/publish.py   |  204 +++++++-------
1451   src/allmydata/mutable/servermap.py |  402 +++++++++++++-------------
1452   src/allmydata/test/test_mutable.py |   18 +-
1453   4 files changed, 323 insertions(+), 323 deletions(-)
1454 IServer refactoring: pass IServer instances around, instead of peerids
1455 
1456 refs #1363
1457 
1458 This collapses 88 small incremental changes (each of which passes all tests)
1459 into one big patch. The development process for the long path started with
1460 adding some temporary scaffolding, changing one method at a time, then
1461 removing the scaffolding. The individual pieces are as follows, in reverse
1462 chronological order (the first patch is at the end of this comment):
1463 
1464  commit 9bbe4174fd0d98a6cf47a8ef96e85d9ef34b2f9a
1465  Author: Brian Warner <warner@lothar.com>
1466  Date:   Tue Oct 4 16:05:00 2011 -0400
1467 
1468      immutable/downloader/status.py: correct comment
1469 
1470   src/allmydata/immutable/downloader/status.py |    2 +-
1471   1 files changed, 1 insertions(+), 1 deletions(-)
1472 
1473  commit 72146a7c7c91eac2f7c3ceb801eb7a1721376889
1474  Author: Brian Warner <warner@lothar.com>
1475  Date:   Tue Oct 4 15:46:20 2011 -0400
1476 
1477      remove temporary ServerMap._storage_broker
1478 
1479   src/allmydata/mutable/checker.py   |    2 +-
1480   src/allmydata/mutable/filenode.py  |    2 +-
1481   src/allmydata/mutable/publish.py   |    2 +-
1482   src/allmydata/mutable/servermap.py |    5 ++---
1483   src/allmydata/test/test_mutable.py |    8 ++++----
1484   5 files changed, 9 insertions(+), 10 deletions(-)
1485 
1486  commit d703096b41632c47d76414b12672e076a422ff5c
1487  Author: Brian Warner <warner@lothar.com>
1488  Date:   Tue Oct 4 15:37:05 2011 -0400
1489 
1490      remove temporary storage_broker.get_server_for_id()
1491 
1492   src/allmydata/storage_client.py  |    3 ---
1493   src/allmydata/test/no_network.py |   13 -------------
1494   2 files changed, 0 insertions(+), 16 deletions(-)
1495 
1496  commit 620cc5d80882ef6f7decfd26af8a6c7c1ddf80d1
1497  Author: Brian Warner <warner@lothar.com>
1498  Date:   Tue Oct 4 12:50:06 2011 -0400
1499 
1500      API of Retrieve._try_to_validate_privkey(), trying to remove reader.server
1501 
1502   src/allmydata/mutable/retrieve.py |   10 +++++-----
1503   1 files changed, 5 insertions(+), 5 deletions(-)
1504 
1505  commit 92f43f856f4a8b36c207d1b190ed8699b5a4ecb4
1506  Author: Brian Warner <warner@lothar.com>
1507  Date:   Tue Oct 4 12:48:08 2011 -0400
1508 
1509      API of Retrieve._validate_block(), trying to remove reader.server
1510 
1511   src/allmydata/mutable/retrieve.py |   14 +++++++-------
1512   1 files changed, 7 insertions(+), 7 deletions(-)
1513 
1514  commit 572d5070761861a2190349d1ed8d85dbc25698a5
1515  Author: Brian Warner <warner@lothar.com>
1516  Date:   Tue Oct 4 12:36:58 2011 -0400
1517 
1518      API of Retrieve._mark_bad_share(), trying to remove reader.server
1519 
1520   src/allmydata/mutable/retrieve.py |   21 +++++++++------------
1521   1 files changed, 9 insertions(+), 12 deletions(-)
1522 
1523  commit a793ff00c0de1e2eec7b46288fdf388c7a2bec89
1524  Author: Brian Warner <warner@lothar.com>
1525  Date:   Tue Oct 4 12:06:13 2011 -0400
1526 
1527      remove now-unused get_rref_for_serverid()
1528 
1529   src/allmydata/mutable/servermap.py |    3 ---
1530   1 files changed, 0 insertions(+), 3 deletions(-)
1531 
1532  commit 1b9827cc9366bf90b93297fdd6832f2ad0480ce7
1533  Author: Brian Warner <warner@lothar.com>
1534  Date:   Tue Oct 4 12:03:09 2011 -0400
1535 
1536      Retrieve: stop adding .serverid attributes to readers
1537 
1538   src/allmydata/mutable/retrieve.py |    1 -
1539   1 files changed, 0 insertions(+), 1 deletions(-)
1540 
1541  commit 5d4e9d491b19e49d2e443a1dfff2c672842c36ef
1542  Author: Brian Warner <warner@lothar.com>
1543  Date:   Tue Oct 4 12:03:34 2011 -0400
1544 
1545      return value of Retrieve(verify=True)
1546 
1547   src/allmydata/mutable/checker.py  |   11 ++++++-----
1548   src/allmydata/mutable/retrieve.py |    3 +--
1549   2 files changed, 7 insertions(+), 7 deletions(-)
1550 
1551  commit e9ab7978c384e1f677cb7779dc449b1044face82
1552  Author: Brian Warner <warner@lothar.com>
1553  Date:   Tue Oct 4 11:54:23 2011 -0400
1554 
1555      Retrieve._bad_shares (but not return value, used by Verifier)
1556 
1557   src/allmydata/mutable/retrieve.py |    7 ++++---
1558   1 files changed, 4 insertions(+), 3 deletions(-)
1559 
1560  commit 2d91926de233ec5c881f30e36b4a30ad92ab42a9
1561  Author: Brian Warner <warner@lothar.com>
1562  Date:   Tue Oct 4 11:51:23 2011 -0400
1563 
1564      Publish: stop adding .serverid attributes to writers
1565 
1566   src/allmydata/mutable/publish.py |    9 ++-------
1567   1 files changed, 2 insertions(+), 7 deletions(-)
1568 
1569  commit 47c7a0105dec7cbf4f7e0a3ce800bbb85b15df4a
1570  Author: Brian Warner <warner@lothar.com>
1571  Date:   Tue Oct 4 11:56:33 2011 -0400
1572 
1573      API of get_write_enabler()
1574 
1575   src/allmydata/mutable/filenode.py |    7 ++++---
1576   src/allmydata/mutable/publish.py  |    4 ++--
1577   src/allmydata/test/no_network.py  |    3 +++
1578   3 files changed, 9 insertions(+), 5 deletions(-)
1579 
1580  commit 9196a5c6590fdbfd660325ea8358b345887d3db0
1581  Author: Brian Warner <warner@lothar.com>
1582  Date:   Tue Oct 4 11:46:24 2011 -0400
1583 
1584      API of get_(renewal|cancel)_secret()
1585 
1586   src/allmydata/mutable/filenode.py  |   14 ++++++++------
1587   src/allmydata/mutable/publish.py   |    8 ++++----
1588   src/allmydata/mutable/servermap.py |    5 ++---
1589   3 files changed, 14 insertions(+), 13 deletions(-)
1590 
1591  commit de7c1552f8c163eff5b6d820b5fb3b21c1b47cb5
1592  Author: Brian Warner <warner@lothar.com>
1593  Date:   Tue Oct 4 11:41:52 2011 -0400
1594 
1595      API of CorruptShareError. Also comment out some related+unused test_web.py code
1596 
1597   src/allmydata/mutable/common.py    |   13 +++++--------
1598   src/allmydata/mutable/retrieve.py  |   10 +++++-----
1599   src/allmydata/mutable/servermap.py |    8 +++-----
1600   src/allmydata/test/common.py       |   13 ++++++++-----
1601   4 files changed, 21 insertions(+), 23 deletions(-)
1602 
1603  commit 2c1c314046b620c16f1e66d030c150d768b7d01e
1604  Author: Brian Warner <warner@lothar.com>
1605  Date:   Tue Oct 4 12:01:46 2011 -0400
1606 
1607      API of ServerMap.mark_bad_share()
1608 
1609   src/allmydata/mutable/publish.py   |    2 +-
1610   src/allmydata/mutable/retrieve.py  |    6 +++---
1611   src/allmydata/mutable/servermap.py |    6 ++----
1612   src/allmydata/test/test_mutable.py |    3 +--
1613   4 files changed, 7 insertions(+), 10 deletions(-)
1614 
1615  commit 1bed349030779fd0c378ae4e821384f953c6f6ff
1616  Author: Brian Warner <warner@lothar.com>
1617  Date:   Tue Oct 4 11:11:17 2011 -0400
1618 
1619      API+name of ServerMap.shares_on_server() : only for tests, so debug_ prefix
1620 
1621   src/allmydata/mutable/servermap.py |    7 ++-----
1622   src/allmydata/test/test_mutable.py |    6 +++---
1623   2 files changed, 5 insertions(+), 8 deletions(-)
1624 
1625  commit 2d32e448677d6b818692e801045d4115b29abf21
1626  Author: Brian Warner <warner@lothar.com>
1627  Date:   Tue Oct 4 11:07:10 2011 -0400
1628 
1629      API of ServerMap.all_servers_for_version()
1630 
1631   src/allmydata/mutable/servermap.py |    4 ++--
1632   1 files changed, 2 insertions(+), 2 deletions(-)
1633 
1634  commit 48f3204d1889c3e7179578125c4bdef515af3d6a
1635  Author: Brian Warner <warner@lothar.com>
1636  Date:   Tue Oct 4 11:04:50 2011 -0400
1637 
1638      internals of ServerMap methods that use make_versionmap(), remove temp copy
1639 
1640   src/allmydata/mutable/servermap.py |   28 +++++++++----------------
1641   1 files changed, 10 insertions(+), 18 deletions(-)
1642 
1643  commit 5c3da77b6c777a145bd5ddfaa4db849dc9495548
1644  Author: Brian Warner <warner@lothar.com>
1645  Date:   Tue Oct 4 11:01:28 2011 -0400
1646 
1647      API of ServerMap.make_versionmap()
1648 
1649   src/allmydata/mutable/checker.py   |    4 ++--
1650   src/allmydata/mutable/retrieve.py  |    5 ++---
1651   src/allmydata/mutable/servermap.py |    4 ++--
1652   src/allmydata/test/test_mutable.py |    7 ++++---
1653   4 files changed, 10 insertions(+), 10 deletions(-)
1654 
1655  commit b6882ece49afb4c507d118af2db346fa329209dc
1656  Author: Brian Warner <warner@lothar.com>
1657  Date:   Tue Oct 4 10:53:38 2011 -0400
1658 
1659      make a copy of ServerMap.make_versionmap() (_make_versionmap2) for internal use
1660 
1661   src/allmydata/mutable/servermap.py |   18 +++++++++++++-----
1662   1 files changed, 13 insertions(+), 5 deletions(-)
1663 
1664  commit 963f8e63faf32b950eb1b8103cd2ff16fe8f0151
1665  Author: Brian Warner <warner@lothar.com>
1666  Date:   Tue Oct 4 00:45:58 2011 -0400
1667 
1668      API of RetrieveStatus.add_problem()
1669 
1670   src/allmydata/mutable/retrieve.py |    5 +++--
1671   1 files changed, 3 insertions(+), 2 deletions(-)
1672 
1673  commit 4976d29ffae565a048851601c29013bbae2976d8
1674  Author: Brian Warner <warner@lothar.com>
1675  Date:   Tue Oct 4 00:45:05 2011 -0400
1676 
1677      API of RetrieveStatus.add_fetch_timing()
1678 
1679   src/allmydata/mutable/retrieve.py |    5 +++--
1680   1 files changed, 3 insertions(+), 2 deletions(-)
1681 
1682  commit d057d3bbba72663ee148a8b916bc2d52be2e3982
1683  Author: Brian Warner <warner@lothar.com>
1684  Date:   Tue Oct 4 00:44:04 2011 -0400
1685 
1686      API of Retrieve.notify_server_corruption()
1687 
1688   src/allmydata/mutable/retrieve.py |    6 +++---
1689   1 files changed, 3 insertions(+), 3 deletions(-)
1690 
1691  commit 8a2a81e46671c860610e0e96d6add1a57551f22d
1692  Author: Brian Warner <warner@lothar.com>
1693  Date:   Tue Oct 4 00:42:32 2011 -0400
1694 
1695      remove unused _outstanding_queries
1696 
1697   src/allmydata/mutable/retrieve.py |    1 -
1698   1 files changed, 0 insertions(+), 1 deletions(-)
1699 
1700  commit 56d12cc9968d03ccd53764455c671122c4f391d1
1701  Author: Brian Warner <warner@lothar.com>
1702  Date:   Tue Oct 4 00:40:57 2011 -0400
1703 
1704      change Retrieve.remaining_sharemap
1705 
1706   src/allmydata/mutable/retrieve.py |    4 ++--
1707   1 files changed, 2 insertions(+), 2 deletions(-)
1708 
1709  commit 4f0b7af4821f43290bfc70f2b1fc30149ad81281
1710  Author: Brian Warner <warner@lothar.com>
1711  Date:   Tue Oct 4 10:40:18 2011 -0400
1712 
1713      accessor for PublishStatus._problems
1714 
1715   src/allmydata/mutable/publish.py |    4 +++-
1716   src/allmydata/web/status.py      |    2 +-
1717   2 files changed, 4 insertions(+), 2 deletions(-)
1718 
1719  commit 627087cf66d0b8cc519f4d551a967a7bd9b6a741
1720  Author: Brian Warner <warner@lothar.com>
1721  Date:   Tue Oct 4 10:36:39 2011 -0400
1722 
1723      accessor for RetrieveStatus._problems
1724 
1725   src/allmydata/mutable/retrieve.py |    8 ++++++--
1726   src/allmydata/web/status.py       |    2 +-
1727   2 files changed, 7 insertions(+), 3 deletions(-)
1728 
1729  commit ca7dea81f03801b1c7353fc00ecba689268109cf
1730  Author: Brian Warner <warner@lothar.com>
1731  Date:   Tue Oct 4 00:35:32 2011 -0400
1732 
1733      add .server to "reader", so we can get at it later
1734 
1735   src/allmydata/mutable/retrieve.py |    5 +++--
1736   1 files changed, 3 insertions(+), 2 deletions(-)
1737 
1738  commit 6ef516e24908ec195af084a7550d1921a5e983b0
1739  Author: Brian Warner <warner@lothar.com>
1740  Date:   Tue Oct 4 00:32:32 2011 -0400
1741 
1742      temporarily give Retrieve a _storage_broker, so it can map serverids to servers
1743 
1744   src/allmydata/mutable/checker.py   |    3 ++-
1745   src/allmydata/mutable/filenode.py  |    6 ++++--
1746   src/allmydata/mutable/retrieve.py  |    5 +++--
1747   src/allmydata/test/test_mutable.py |    4 ++--
1748   4 files changed, 11 insertions(+), 7 deletions(-)
1749 
1750  commit afe08e4dd3f4ff9ff7e8a2a8d28b181e3625bcc9
1751  Author: Brian Warner <warner@lothar.com>
1752  Date:   Tue Oct 4 00:21:51 2011 -0400
1753 
1754      mutable/retrieve.py: s/peer/server/
1755 
1756   src/allmydata/mutable/retrieve.py  |   82 +++++++++++++-------------
1757   src/allmydata/test/test_mutable.py |    6 +-
1758   2 files changed, 44 insertions(+), 44 deletions(-)
1759 
1760  commit 910afcb5d7f274880f68dd6cdb5b05f2bbc29adc
1761  Author: Brian Warner <warner@lothar.com>
1762  Date:   Tue Oct 4 00:16:01 2011 -0400
1763 
1764      web.status.PublishStatusPage: add comment, I think .problems isn't exercised
1765 
1766   src/allmydata/web/status.py |    2 ++
1767   1 files changed, 2 insertions(+), 0 deletions(-)
1768 
1769  commit 311466dd8c931bbba40d590ade867704282e7f1a
1770  Author: Brian Warner <warner@lothar.com>
1771  Date:   Mon Oct 3 23:48:16 2011 -0400
1772 
1773      API of PublishStatus.add_per_server_time()
1774 
1775   src/allmydata/mutable/publish.py |    5 +++--
1776   1 files changed, 3 insertions(+), 2 deletions(-)
1777 
1778  commit 2df5faa1b6cbfbaded520d2320305a62fe961118
1779  Author: Brian Warner <warner@lothar.com>
1780  Date:   Mon Oct 3 23:46:37 2011 -0400
1781 
1782      more simplifications
1783 
1784   src/allmydata/mutable/publish.py |    4 +---
1785   1 files changed, 1 insertions(+), 3 deletions(-)
1786 
1787  commit 6ac4544a3da385f2aad9392f906b90192f4f919a
1788  Author: Brian Warner <warner@lothar.com>
1789  Date:   Mon Oct 3 23:44:08 2011 -0400
1790 
1791      API of ServerMap.version_on_server()
1792 
1793   src/allmydata/mutable/publish.py   |    2 +-
1794   src/allmydata/mutable/servermap.py |    4 ++--
1795   src/allmydata/test/test_mutable.py |    5 ++---
1796   3 files changed, 5 insertions(+), 6 deletions(-)
1797 
1798  commit 3e187e322511072e4683329df6b2c6c733a66dba
1799  Author: Brian Warner <warner@lothar.com>
1800  Date:   Tue Oct 4 00:16:32 2011 -0400
1801 
1802      API of ServerMap.make_sharemap()
1803 
1804   src/allmydata/mutable/servermap.py |    4 ++--
1805   src/allmydata/test/test_mutable.py |    7 ++++---
1806   src/allmydata/web/status.py        |    4 ++--
1807   3 files changed, 8 insertions(+), 7 deletions(-)
1808 
1809  commit 318feed8437bdd8d4943c6569d38f7b54b6313cc
1810  Author: Brian Warner <warner@lothar.com>
1811  Date:   Mon Oct 3 23:36:19 2011 -0400
1812 
1813      small cleanups
1814 
1815   src/allmydata/mutable/publish.py |    4 ++--
1816   1 files changed, 2 insertions(+), 2 deletions(-)
1817 
1818  commit bd459ed5714e1db5a7163935c54b7b0b56db8349
1819  Author: Brian Warner <warner@lothar.com>
1820  Date:   Mon Oct 3 23:33:39 2011 -0400
1821 
1822      API of ServerMap.add_new_share()
1823 
1824   src/allmydata/mutable/publish.py   |    4 ++--
1825   src/allmydata/mutable/servermap.py |    6 ++----
1826   2 files changed, 4 insertions(+), 6 deletions(-)
1827 
1828  commit f2804fb6ed11d80088e0da8ed48e6c2922f2ffef
1829  Author: Brian Warner <warner@lothar.com>
1830  Date:   Mon Oct 3 23:30:26 2011 -0400
1831 
1832      API of ServerMap.get_bad_shares()
1833 
1834   src/allmydata/mutable/publish.py   |    3 +--
1835   src/allmydata/mutable/servermap.py |    9 ++++-----
1836   2 files changed, 5 insertions(+), 7 deletions(-)
1837 
1838  commit 965074a47b3ce1431cb46d9a233840afcf9105f5
1839  Author: Brian Warner <warner@lothar.com>
1840  Date:   Mon Oct 3 23:26:58 2011 -0400
1841 
1842      more small cleanups
1843 
1844   src/allmydata/mutable/publish.py |    6 +++---
1845   1 files changed, 3 insertions(+), 3 deletions(-)
1846 
1847  commit 38020da34f034f8889947dd3dc05e087ffff7106
1848  Author: Brian Warner <warner@lothar.com>
1849  Date:   Mon Oct 3 23:18:47 2011 -0400
1850 
1851      change Publish.bad_share_checkstrings
1852 
1853   src/allmydata/mutable/publish.py |    6 +++---
1854   1 files changed, 3 insertions(+), 3 deletions(-)
1855 
1856  commit 5efebcbd2ee0c2f299ea86f7591d856c0f265304
1857  Author: Brian Warner <warner@lothar.com>
1858  Date:   Mon Oct 3 23:16:31 2011 -0400
1859 
1860      change internals of Publish.update_goal()
1861 
1862   src/allmydata/mutable/publish.py |    8 +++-----
1863   1 files changed, 3 insertions(+), 5 deletions(-)
1864 
1865  commit e91b55ff4c2a69165b71f2c7b217ac319ff4c527
1866  Author: Brian Warner <warner@lothar.com>
1867  Date:   Mon Oct 3 23:11:42 2011 -0400
1868 
1869      get rid of Publish.connections
1870 
1871   src/allmydata/mutable/publish.py |   27 +++++----------------------
1872   1 files changed, 5 insertions(+), 22 deletions(-)
1873 
1874  commit 64e9a53b3229ebe2f9ebf7ed502d539311d0e037
1875  Author: Brian Warner <warner@lothar.com>
1876  Date:   Mon Oct 3 23:05:32 2011 -0400
1877 
1878      change Publish.bad_servers
1879 
1880   src/allmydata/mutable/publish.py |   10 +++++-----
1881   1 files changed, 5 insertions(+), 5 deletions(-)
1882 
1883  commit b85a934bef315a06bcfe00c9c12a3627fed2b918
1884  Author: Brian Warner <warner@lothar.com>
1885  Date:   Mon Oct 3 23:03:07 2011 -0400
1886 
1887      Publish.bad_servers: fix bug, this should be a set of serverids, not writers
1888 
1889   src/allmydata/mutable/publish.py |    2 +-
1890   1 files changed, 1 insertions(+), 1 deletions(-)
1891 
1892  commit 605ea15ec15ed671513819003ccd211cdb9761e0
1893  Author: Brian Warner <warner@lothar.com>
1894  Date:   Mon Oct 3 23:00:21 2011 -0400
1895 
1896      change .placed
1897 
1898   src/allmydata/mutable/publish.py |    6 +++---
1899   1 files changed, 3 insertions(+), 3 deletions(-)
1900 
1901  commit f7aba37b1b345d5b6d5cb16e3b3f6f3c1afb658e
1902  Author: Brian Warner <warner@lothar.com>
1903  Date:   Mon Oct 3 22:59:22 2011 -0400
1904 
1905      temporarily stash IServer as .server on the "writer" object
1906 
1907   src/allmydata/mutable/publish.py |    2 ++
1908   1 files changed, 2 insertions(+), 0 deletions(-)
1909 
1910  commit f9b551d788e7db1f187fce5ab98ab5d5fe4e1c36
1911  Author: Brian Warner <warner@lothar.com>
1912  Date:   Mon Oct 3 22:48:18 2011 -0400
1913 
1914      change Publish.goal and API of log_goal() to use IServer, not serverid
1915 
1916   src/allmydata/mutable/publish.py |   48 ++++++++++++++--------------
1917   1 files changed, 24 insertions(+), 24 deletions(-)
1918 
1919  commit 75f20616558e4900b8b1f685dd99aa838de6d452
1920  Author: Brian Warner <warner@lothar.com>
1921  Date:   Mon Oct 3 15:27:02 2011 -0400
1922 
1923      API of ServerMap.get_known_shares()
1924 
1925   src/allmydata/mutable/publish.py   |   16 ++++++++++------
1926   src/allmydata/mutable/servermap.py |    7 ++-----
1927   2 files changed, 12 insertions(+), 11 deletions(-)
1928 
1929  commit 1c38c9d37bb08221b4418762234b1a62397b3b4b
1930  Author: Brian Warner <warner@lothar.com>
1931  Date:   Mon Oct 3 15:20:29 2011 -0400
1932 
1933      Publish.full_serverlist
1934 
1935   src/allmydata/mutable/publish.py |   10 +++++-----
1936   1 files changed, 5 insertions(+), 5 deletions(-)
1937 
1938  commit b6cbd215a04b9cde31a7d92a97a7f048622b16f1
1939  Author: Brian Warner <warner@lothar.com>
1940  Date:   Mon Oct 3 15:12:31 2011 -0400
1941 
1942      API of ServerMap.all_servers()
1943 
1944   src/allmydata/mutable/servermap.py |   19 ++++++-------------
1945   1 files changed, 6 insertions(+), 13 deletions(-)
1946 
1947  commit e63cd0315fae65357b1727ec6d5ff3c6e0d27c98
1948  Author: Brian Warner <warner@lothar.com>
1949  Date:   Mon Oct 3 15:10:18 2011 -0400
1950 
1951      remove ServerMap.connections, set_rref_for_serverid()
1952 
1953   src/allmydata/mutable/servermap.py |   11 +----------
1954   1 files changed, 1 insertions(+), 10 deletions(-)
1955 
1956  commit 4df52db2f80eb12eefa5d57103c24893cde89553
1957  Author: Brian Warner <warner@lothar.com>
1958  Date:   Mon Oct 3 15:04:06 2011 -0400
1959 
1960      API of ServerMap.mark_server_reachable()
1961 
1962   src/allmydata/mutable/servermap.py |    7 ++-----
1963   1 files changed, 2 insertions(+), 5 deletions(-)
1964 
1965  commit 69c715bde77944dc25181b3dbbeb042c816f9a1b
1966  Author: Brian Warner <warner@lothar.com>
1967  Date:   Mon Oct 3 15:03:21 2011 -0400
1968 
1969      API of ServerMap.mark_server_unreachable()
1970 
1971   src/allmydata/mutable/servermap.py |    9 +++------
1972   1 files changed, 3 insertions(+), 6 deletions(-)
1973 
1974  commit 3d784d60eec1c508858e3a617e4411ffbcc3c1fa
1975  Author: Brian Warner <warner@lothar.com>
1976  Date:   Mon Oct 3 15:02:03 2011 -0400
1977 
1978      API of status.set_privkey_from()
1979 
1980   src/allmydata/mutable/servermap.py |    7 +++----
1981   1 files changed, 3 insertions(+), 4 deletions(-)
1982 
1983  commit 544ed3ea29bed7e66da7fd29ca3f6f076f27a9e6
1984  Author: Brian Warner <warner@lothar.com>
1985  Date:   Mon Oct 3 15:01:15 2011 -0400
1986 
1987      API of status.add_per_server_time()
1988 
1989   src/allmydata/mutable/servermap.py |    7 ++++---
1990   1 files changed, 4 insertions(+), 3 deletions(-)
1991 
1992  commit fffe5008b6320bd1e04c3c68389a2bf2ee383fa8
1993  Author: Brian Warner <warner@lothar.com>
1994  Date:   Mon Oct 3 14:59:02 2011 -0400
1995 
1996      remove unused .versionmap
1997 
1998   src/allmydata/mutable/servermap.py |    7 -------
1999   1 files changed, 0 insertions(+), 7 deletions(-)
2000 
2001  commit 2816562e090d2294179db3588dafcca18de1bc2b
2002  Author: Brian Warner <warner@lothar.com>
2003  Date:   Mon Oct 3 14:57:51 2011 -0400
2004 
2005      remove serverid from all log messages. Also one unused lambda.
2006 
2007   src/allmydata/mutable/servermap.py |   30 +++++++++++++-------------
2008   1 files changed, 15 insertions(+), 15 deletions(-)
2009 
2010  commit 28fa6b1a2738fa98c1f1dbd3d0e01ae98912d11f
2011  Author: Brian Warner <warner@lothar.com>
2012  Date:   Mon Oct 3 14:54:30 2011 -0400
2013 
2014      removed unused _readers
2015 
2016   src/allmydata/mutable/servermap.py |    3 ---
2017   1 files changed, 0 insertions(+), 3 deletions(-)
2018 
2019  commit a8e4ed3d645ab592d1add6a1e69b6d1ebfb77817
2020  Author: Brian Warner <warner@lothar.com>
2021  Date:   Mon Oct 3 14:54:16 2011 -0400
2022 
2023      remove unused _sharemap
2024 
2025   src/allmydata/mutable/servermap.py |    1 -
2026   1 files changed, 0 insertions(+), 1 deletions(-)
2027 
2028  commit 3f072e55cf1d0700f9fffe23f8f3a475725df588
2029  Author: Brian Warner <warner@lothar.com>
2030  Date:   Mon Oct 3 14:49:03 2011 -0400
2031 
2032      _must_query
2033 
2034   src/allmydata/mutable/servermap.py |    8 ++++----
2035   1 files changed, 4 insertions(+), 4 deletions(-)
2036 
2037  commit c599a059b8df3f5785e4bf89fb6ecc6d8dcd708b
2038  Author: Brian Warner <warner@lothar.com>
2039  Date:   Mon Oct 3 14:48:05 2011 -0400
2040 
2041      _queries_outstanding
2042 
2043   src/allmydata/mutable/servermap.py |   16 +++++++---------
2044   1 files changed, 7 insertions(+), 9 deletions(-)
2045 
2046  commit 7743759f98ac2c07926b2fdbd80bf52dfab33085
2047  Author: Brian Warner <warner@lothar.com>
2048  Date:   Mon Oct 3 14:46:17 2011 -0400
2049 
2050      _empty_servers
2051 
2052   src/allmydata/mutable/servermap.py |    5 ++---
2053   1 files changed, 2 insertions(+), 3 deletions(-)
2054 
2055  commit 6bb1825916828a713a32cdf7f7411fa3ea2e1e5d
2056  Author: Brian Warner <warner@lothar.com>
2057  Date:   Mon Oct 3 14:45:39 2011 -0400
2058 
2059      _good_servers
2060 
2061   src/allmydata/mutable/servermap.py |    4 ++--
2062   1 files changed, 2 insertions(+), 2 deletions(-)
2063 
2064  commit 1768fab1b51d8dd93ecabbaaabfadfa20cf6c3d4
2065  Author: Brian Warner <warner@lothar.com>
2066  Date:   Mon Oct 3 14:44:59 2011 -0400
2067 
2068      _bad_servers
2069 
2070   src/allmydata/mutable/servermap.py |   14 +++++++-------
2071   1 files changed, 7 insertions(+), 7 deletions(-)
2072 
2073  commit dccbaef30f0ba714c746bf6d4a1a803c36e17b65
2074  Author: Brian Warner <warner@lothar.com>
2075  Date:   Mon Oct 3 14:41:54 2011 -0400
2076 
2077      API of _try_to_set_pubkey()
2078 
2079   src/allmydata/mutable/servermap.py |    7 ++++---
2080   1 files changed, 4 insertions(+), 3 deletions(-)
2081 
2082  commit 0481ea70042ba3575f15eac7fd0780f8ece580cc
2083  Author: Brian Warner <warner@lothar.com>
2084  Date:   Mon Oct 3 14:35:02 2011 -0400
2085 
2086      API of notify_server_corruption()
2087 
2088   src/allmydata/mutable/servermap.py |    6 +++---
2089   1 files changed, 3 insertions(+), 3 deletions(-)
2090 
2091  commit bea9cba18fb3b9c11bb22f18356a263ecec7351e
2092  Author: Brian Warner <warner@lothar.com>
2093  Date:   Mon Oct 3 14:34:09 2011 -0400
2094 
2095      API of _got_signature_one_share()
2096 
2097   src/allmydata/mutable/servermap.py |    9 +++++----
2098   1 files changed, 5 insertions(+), 4 deletions(-)
2099 
2100  commit 1520123583cf78650706e114b15bb5b0ac1f4a14
2101  Author: Brian Warner <warner@lothar.com>
2102  Date:   Mon Oct 3 14:32:33 2011 -0400
2103 
2104      API of _try_to_validate_privkey()
2105 
2106   src/allmydata/mutable/servermap.py |    9 +++++----
2107   1 files changed, 5 insertions(+), 4 deletions(-)
2108 
2109  commit 938852c9c8519c7a078f58a9b1f4dd8ec8b6715e
2110  Author: Brian Warner <warner@lothar.com>
2111  Date:   Mon Oct 3 14:31:48 2011 -0400
2112 
2113      API and internals of _add_lease_failed()
2114 
2115   src/allmydata/mutable/servermap.py |    8 ++++----
2116   1 files changed, 4 insertions(+), 4 deletions(-)
2117 
2118  commit 3843dba367e3c19e176a622ab853cb51d2472ddf
2119  Author: Brian Warner <warner@lothar.com>
2120  Date:   Mon Oct 3 14:30:37 2011 -0400
2121 
2122      API of _privkey_query_failed()
2123 
2124   src/allmydata/mutable/servermap.py |    5 +++--
2125   1 files changed, 3 insertions(+), 2 deletions(-)
2126 
2127  commit 2219a710e1633cd57d0ca0786490de87b3e19ba7
2128  Author: Brian Warner <warner@lothar.com>
2129  Date:   Mon Oct 3 14:29:43 2011 -0400
2130 
2131      fix bug in call to _privkey_query_failed, unrelated to refactoring
2132 
2133   src/allmydata/mutable/servermap.py |    2 +-
2134   1 files changed, 1 insertions(+), 1 deletions(-)
2135 
2136  commit ae615bec7d0d1b269710b6902797b12f9592ad62
2137  Author: Brian Warner <warner@lothar.com>
2138  Date:   Mon Oct 3 14:27:17 2011 -0400
2139 
2140      API of _got_corrupt_share()
2141 
2142   src/allmydata/mutable/servermap.py |   17 +++++++++--------
2143   1 files changed, 9 insertions(+), 8 deletions(-)
2144 
2145  commit cb51c95a6f4e077278157a77dab060c8c1ad7a81
2146  Author: Brian Warner <warner@lothar.com>
2147  Date:   Mon Oct 3 14:23:16 2011 -0400
2148 
2149      API of _got_results()
2150 
2151   src/allmydata/mutable/servermap.py |    9 +++++----
2152   1 files changed, 5 insertions(+), 4 deletions(-)
2153 
2154  commit bac9154fe0af18f226999a58ffc2362d8cf4b802
2155  Author: Brian Warner <warner@lothar.com>
2156  Date:   Mon Oct 3 14:19:19 2011 -0400
2157 
2158      API of _query_failed()
2159 
2160   src/allmydata/mutable/servermap.py |    5 +++--
2161   1 files changed, 3 insertions(+), 2 deletions(-)
2162 
2163  commit fdc29a8ca95d4b5c503e5382b9e5d4d02141ba12
2164  Author: Brian Warner <warner@lothar.com>
2165  Date:   Mon Oct 3 14:17:20 2011 -0400
2166 
2167      API of _do_read()
2168 
2169   src/allmydata/mutable/servermap.py |    6 ++++--
2170   1 files changed, 4 insertions(+), 2 deletions(-)
2171 
2172  commit e7e9e338f28d004aa4d423d11c65f1e271ac7322
2173  Author: Brian Warner <warner@lothar.com>
2174  Date:   Mon Oct 3 14:20:21 2011 -0400
2175 
2176      API of _do_query()
2177 
2178   src/allmydata/mutable/servermap.py |   15 +++++++--------
2179   1 files changed, 7 insertions(+), 8 deletions(-)
2180 
2181  commit 330625b9dac4cdbe72a11464a893065b9aeed453
2182  Author: Brian Warner <warner@lothar.com>
2183  Date:   Mon Oct 3 14:43:05 2011 -0400
2184 
2185      next step: first batch of updates to ServermapUpdater
2186 
2187      updates:
2188       most method-local variables in update()
2189       API of _build_initial_querylist()
2190       API of _send_initial_requests()
2191       .full_serverlist
2192       .extra_servers
2193 
2194   src/allmydata/mutable/servermap.py |   39 ++++++++++++++------------
2195   1 files changed, 21 insertions(+), 18 deletions(-)
2196 
2197  commit 4aadc584fa7dcb2daa86b048c81dee0049ba26d9
2198  Author: Brian Warner <warner@lothar.com>
2199  Date:   Mon Oct 3 15:07:00 2011 -0400
2200 
2201      internal change: index _bad_shares with IServer
2202 
2203   src/allmydata/mutable/servermap.py |   20 ++++++++++----------
2204   1 files changed, 10 insertions(+), 10 deletions(-)
2205 
2206  commit 16d4e6fa82a9907dbdc92094213387c6a4164e41
2207  Author: Brian Warner <warner@lothar.com>
2208  Date:   Mon Oct 3 18:20:47 2011 +0100
2209 
2210      internal change: index _known_shares with IServer instead of serverid
2211 
2212      callers are unchanged
2213 
2214   src/allmydata/mutable/servermap.py |   42 +++++++++++++++----------
2215   1 files changed, 25 insertions(+), 17 deletions(-)
2216 
2217  commit ceeb5f4938cc814a0c75d1b8f4018aed965c2176
2218  Author: Brian Warner <warner@lothar.com>
2219  Date:   Mon Oct 3 18:11:43 2011 +0100
2220 
2221      accessors and name cleanup for servermap.Servermap.last_update_mode/time
2222 
2223   src/allmydata/mutable/filenode.py  |    6 +++---
2224   src/allmydata/mutable/publish.py   |    4 ++--
2225   src/allmydata/mutable/servermap.py |   17 +++++++++++------
2226   3 files changed, 16 insertions(+), 11 deletions(-)
2227 
2228  commit 8d3cbda82661c0a7e5c3d3b65cf7a5d5ab7e32c0
2229  Author: Brian Warner <warner@lothar.com>
2230  Date:   Mon Oct 3 18:11:14 2011 +0100
2231 
2232      accessors and name cleanup for servermap.Servermap.problems
2233 
2234   src/allmydata/mutable/servermap.py |   21 +++++++++++++--------
2235   src/allmydata/test/test_mutable.py |    6 +++---
2236   2 files changed, 16 insertions(+), 11 deletions(-)
2237 
2238  commit 348f57988f79389db0aab7672e6eaa9a6d8e3219
2239  Author: Brian Warner <warner@lothar.com>
2240  Date:   Mon Oct 3 18:10:41 2011 +0100
2241 
2242      accessors and name cleanup for servermap.Servermap.bad_shares
2243 
2244   src/allmydata/mutable/publish.py   |    2 +-
2245   src/allmydata/mutable/servermap.py |   30 ++++++++++++++-----------
2246   2 files changed, 18 insertions(+), 14 deletions(-)
2247 
2248  commit 520c9368134673cdf76c653c5e1bb91c2ab5d51e
2249  Author: Brian Warner <warner@lothar.com>
2250  Date:   Mon Oct 3 18:10:05 2011 +0100
2251 
2252      accessors and name cleanup for servermap.Servermap.servermap .
2253 
2254   src/allmydata/mutable/publish.py   |   14 +++++----
2255   src/allmydata/mutable/servermap.py |   38 ++++++++++++++-----------
2256   2 files changed, 29 insertions(+), 23 deletions(-)
2257 
2258  commit b8b8dc38287a91dbdf494426ac801d9381ce5841
2259  Author: Brian Warner <warner@lothar.com>
2260  Date:   Mon Oct 3 18:08:02 2011 +0100
2261 
2262      fix reachable_servers
2263 
2264   src/allmydata/mutable/checker.py   |    3 ++-
2265   src/allmydata/mutable/publish.py   |    4 +++-
2266   src/allmydata/mutable/servermap.py |   12 ++++++++++--
2267   3 files changed, 15 insertions(+), 4 deletions(-)
2268 
2269  commit cb0cfd1adfefad357c187aaaf690c3df68b622bc
2270  Author: Brian Warner <warner@lothar.com>
2271  Date:   Mon Oct 3 18:06:03 2011 +0100
2272 
2273      fix Servermap.unreachable_servers
2274 
2275   src/allmydata/mutable/servermap.py |   11 ++++++++---
2276   1 files changed, 8 insertions(+), 3 deletions(-)
2277 
2278  commit 2d9ea79b94bd4db674d40386fda90825785ac495
2279  Author: Brian Warner <warner@lothar.com>
2280  Date:   Mon Oct 3 18:03:48 2011 +0100
2281 
2282      give ServerMap a StorageFarmBroker, temporary
2283 
2284      this makes it possible for the ServerMap to accept bare serverids and still
2285      build data structures with IServers
2286 
2287   src/allmydata/mutable/checker.py   |    2 +-
2288   src/allmydata/mutable/filenode.py  |    2 +-
2289   src/allmydata/mutable/publish.py   |    2 +-
2290   src/allmydata/mutable/servermap.py |    5 +++--
2291   src/allmydata/test/test_mutable.py |    8 ++++----
2292   5 files changed, 10 insertions(+), 9 deletions(-)
2293 
2294  commit 718d1aeff6fded893f65397806d22ece928b0dd4
2295  Author: Brian Warner <warner@lothar.com>
2296  Date:   Mon Oct 3 13:43:30 2011 -0400
2297 
2298      add StorageFarmBroker.get_server_for_id(), temporary helper
2299 
2300      This will go away once we're passing IServers everywhere.
2301 
2302   src/allmydata/storage_client.py  |    2 ++
2303   src/allmydata/test/no_network.py |   13 +++++++++++++
2304   2 files changed, 15 insertions(+), 0 deletions(-)
2305 
2306  commit ece20231d7fda0d503704842a4aa068dfbc2e54e
2307  Author: Brian Warner <warner@lothar.com>
2308  Date:   Sun Oct 2 01:11:50 2011 +0100
2309 
2310      add proper accessors for Servermap.connections, to make refactoring easier
2311 
2312   src/allmydata/mutable/publish.py   |    6 +++---
2313   src/allmydata/mutable/retrieve.py  |   10 +++++-----
2314   src/allmydata/mutable/servermap.py |   17 +++++++++++------
2315   3 files changed, 19 insertions(+), 14 deletions(-)
2316 
2317  commit 3b943d6bf302ff702668081a612fc4fe2604cf9c
2318  Author: Brian Warner <warner@lothar.com>
2319  Date:   Fri Sep 23 10:34:30 2011 -0700
2320 
2321      mutable/servermap.py and neighbors: s/peer/server/
2322 
2323   src/allmydata/mutable/checker.py   |   22 +-
2324   src/allmydata/mutable/publish.py   |  204 +++++++-------
2325   src/allmydata/mutable/servermap.py |  402 +++++++++++++-------------
2326   src/allmydata/test/test_mutable.py |   18 +-
2327   4 files changed, 323 insertions(+), 323 deletions(-)
2328]
2329[TAG allmydata-tahoe-1.9.0
2330warner@lothar.com**20111031052301
2331 Ignore-this: cf598210dd1f314a1a121bf29a3d5918
2332]
2333Patch bundle hash:
233480b69f71f65c035362b9583746b0b1aebc0e542a
2335
2336-----------------------------168072824752491622650073
2337Content-Disposition: form-data; name="description"
2338
2339revised patch for #1628; review this one