1 | 1 patch for repository http://allmydata.org/source/tahoe-lafs/trunk: |
---|
2 | |
---|
3 | Sun Nov 21 23:10:52 CET 2010 francois@ctrlaltdel.ch |
---|
4 | * checker+repairer: Improve deep-check resilience in the presence of unrecoverable subdirectories |
---|
5 | |
---|
6 | Previously, when a deep-check operation found an unrecoverable subdirectory, an |
---|
7 | exception was raised. The whole operation was then stopped and the deep-check |
---|
8 | report was lost. |
---|
9 | |
---|
10 | This patch improves this behaviour by allowing the operation to continue while |
---|
11 | correctly recording the repair failure in the deep-check report. |
---|
12 | |
---|
13 | The CLI now also displays the name of each file on which a repair was attempted. |
---|
14 | |
---|
15 | |
---|
16 | |
---|
17 | New patches: |
---|
18 | |
---|
19 | [checker+repairer: Improve deep-check resilience in the presence of unrecoverable subdirectories |
---|
20 | francois@ctrlaltdel.ch**20101121221052 |
---|
21 | Ignore-this: a96e31ead2c301b4b585112491663013 |
---|
22 | |
---|
23 | Previously, when a deep-check operation found an unrecoverable subdirectory, an |
---|
24 | exception was raised. The whole operation was then stopped and the deep-check |
---|
25 | report was lost. |
---|
26 | |
---|
27 | This patch improves this behaviour by allowing the operation to continue while |
---|
28 | correctly recording the repair failure in the deep-check report. |
---|
29 | |
---|
30 | The CLI now also displays the name of each file on which a repair was attempted. |
---|
31 | |
---|
32 | ] { |
---|
33 | hunk ./src/allmydata/immutable/filenode.py 146 |
---|
34 | crr.post_repair_results = prr |
---|
35 | return crr |
---|
36 | def _repair_error(f): |
---|
37 | - # as with mutable repair, I'm not sure if I want to pass |
---|
38 | - # through a failure or not. TODO |
---|
39 | + prr = CheckResults(cr.uri, cr.storage_index) |
---|
40 | + prr.data = copy.deepcopy(cr.data) |
---|
41 | + prr.set_healthy(False) |
---|
42 | + prr.set_recoverable(False) |
---|
43 | + prr.set_needs_rebalancing(False) |
---|
44 | + crr.post_repair_results = prr |
---|
45 | + |
---|
46 | crr.repair_successful = False |
---|
47 | crr.repair_failure = f |
---|
48 | hunk ./src/allmydata/immutable/filenode.py 155 |
---|
49 | - return f |
---|
50 | + return crr |
---|
51 | + |
---|
52 | r = Repairer(self, storage_broker=sb, secret_holder=sh, |
---|
53 | monitor=monitor) |
---|
54 | d = r.start() |
---|
55 | hunk ./src/allmydata/mutable/checker.py 315 |
---|
56 | self._fill_checker_results(repair_results.servermap, r) |
---|
57 | self.cr_results.repair_results = repair_results # TODO? |
---|
58 | def _repair_error(f): |
---|
59 | - # I'm not sure if I want to pass through a failure or not. |
---|
60 | + prr = CheckResults(cr.uri, cr.storage_index) |
---|
61 | + prr.data = copy.deepcopy(cr.data) |
---|
62 | + prr.set_healthy(False) |
---|
63 | + prr.set_recoverable(False) |
---|
64 | + prr.set_needs_rebalancing(False) |
---|
65 | + self.cr_results.post_repair_results = prr |
---|
66 | + |
---|
67 | self.cr_results.repair_successful = False |
---|
68 | hunk ./src/allmydata/mutable/checker.py 323 |
---|
69 | - self.cr_results.repair_failure = f # TODO? |
---|
70 | - #self.cr_results.post_repair_results = ?? |
---|
71 | - return f |
---|
72 | + self.cr_results.repair_failure = f |
---|
73 | d.addCallbacks(_repair_finished, _repair_error) |
---|
74 | return d |
---|
75 | hunk ./src/allmydata/scripts/tahoe_check.py 213 |
---|
76 | self.repairs_attempted += 1 |
---|
77 | if crr["repair-successful"]: |
---|
78 | self.repairs_successful += 1 |
---|
79 | + |
---|
80 | + path = d["path"] |
---|
81 | + if not path: |
---|
82 | + path = ["<root>"] |
---|
83 | + # verbose means also print one line per file |
---|
84 | if self.verbose: |
---|
85 | hunk ./src/allmydata/scripts/tahoe_check.py 219 |
---|
86 | - # verbose means also print one line per file |
---|
87 | - path = d["path"] |
---|
88 | - if not path: |
---|
89 | - path = ["<root>"] |
---|
90 | # we don't seem to have a summary available, so build one |
---|
91 | if was_healthy: |
---|
92 | summary = "healthy" |
---|
93 | hunk ./src/allmydata/scripts/tahoe_check.py 224 |
---|
94 | else: |
---|
95 | summary = "not healthy" |
---|
96 | + |
---|
97 | print >>stdout, "%s: %s" % (quote_path(path), summary) |
---|
98 | |
---|
99 | # always print out corrupt shares |
---|
100 | hunk ./src/allmydata/scripts/tahoe_check.py 236 |
---|
101 | # always print out repairs |
---|
102 | if crr["repair-attempted"]: |
---|
103 | if crr["repair-successful"]: |
---|
104 | - print >>stdout, " repair successful" |
---|
105 | + print >>stdout, "%s repair successful" % quote_path(path) |
---|
106 | else: |
---|
107 | hunk ./src/allmydata/scripts/tahoe_check.py 238 |
---|
108 | - print >>stdout, " repair failed" |
---|
109 | + print >>stdout, "%s repair failed" % quote_path(path) |
---|
110 | |
---|
111 | def done(self): |
---|
112 | if self.in_error: |
---|
113 | hunk ./src/allmydata/test/test_deepcheck.py 894 |
---|
114 | d.addCallback(self.do_deepcheck) |
---|
115 | d.addCallback(self.do_deepcheck_broken) |
---|
116 | d.addCallback(self.do_test_web_bad) |
---|
117 | + d.addCallback(self.do_web_stream_check) |
---|
118 | d.addErrback(self.explain_web_error) |
---|
119 | d.addErrback(self.explain_error) |
---|
120 | return d |
---|
121 | hunk ./src/allmydata/test/test_deepcheck.py 1210 |
---|
122 | d.addCallback(lambda ign: _checkv("large-corrupt-shares", self.json_has_corrupt_shares)) |
---|
123 | d.addCallback(lambda ign: _checkv("large-unrecoverable", |
---|
124 | self.json_is_unrecoverable)) |
---|
125 | + return d |
---|
126 | + |
---|
127 | + def do_web_stream_check(self, ignored): |
---|
128 | + d = self.web(self.root, method="POST", t="stream-deep-check", |
---|
129 | + repair="true", output="json") |
---|
130 | + |
---|
131 | + def _check((res, ign)): |
---|
132 | + units = list(self.parse_streamed_json(res)) |
---|
133 | + assert units[-1]["type"] == "stats" |
---|
134 | + stats = units[-1]["stats"] |
---|
135 | + |
---|
136 | + self.failUnlessEqual(stats['count-files'], 8) |
---|
137 | + |
---|
138 | + repairs = 0 |
---|
139 | + for i in range(0, stats['count-files']): |
---|
140 | + results = units[i]['check-and-repair-results'] |
---|
141 | + presults = results['pre-repair-results']['results'] |
---|
142 | + |
---|
143 | + if presults['healthy']: |
---|
144 | + self.failUnlessEqual(results['repair-attempted'], False) |
---|
145 | + else: |
---|
146 | + # Enough shares are available for repair |
---|
147 | + if presults['count-shares-good'] >= presults['count-shares-needed']: |
---|
148 | + self.failUnlessEqual(results['repair-attempted'], True) |
---|
149 | + self.failUnlessEqual(results['repair-successful'], True) |
---|
150 | + repairs += 1 |
---|
151 | + else: |
---|
152 | + self.failUnlessEqual(results['repair-attempted'], True) |
---|
153 | + self.failUnlessEqual(results['repair-successful'], False) |
---|
154 | + self.failUnlessEqual(repairs, 2) |
---|
155 | |
---|
156 | hunk ./src/allmydata/test/test_deepcheck.py 1241 |
---|
157 | + d.addCallback(_check) |
---|
158 | return d |
---|
159 | |
---|
160 | class Large(DeepCheckBase, unittest.TestCase): |
---|
161 | hunk ./src/allmydata/test/test_repairer.py 401 |
---|
162 | download_to_data, self.c1_filenode)) |
---|
163 | |
---|
164 | d.addCallback(lambda ignored: |
---|
165 | - self.shouldFail(NotEnoughSharesError, "then_repair", |
---|
166 | - None, |
---|
167 | - self.c1_filenode.check_and_repair, |
---|
168 | - Monitor(), verify=False)) |
---|
169 | + self.c1_filenode.check_and_repair(Monitor(), verify=False)) |
---|
170 | |
---|
171 | # test share corruption |
---|
172 | def _test_corrupt(ignored): |
---|
173 | } |
---|
174 | |
---|
175 | Context: |
---|
176 | |
---|
177 | [docs: NEWS: add #1255 |
---|
178 | zooko@zooko.com**20101120071249 |
---|
179 | Ignore-this: d37ac1a115f6cdebc3dadb32131b6141 |
---|
180 | ] |
---|
181 | [docs: NEWS: put news items about bugfixes/improvements and packaging before news items about documentation |
---|
182 | zooko@zooko.com**20101120060716 |
---|
183 | Ignore-this: 1a4306df950fcdc2ab9771c874d6d0a4 |
---|
184 | ] |
---|
185 | [tahoe_mv.py: when checking success of the DELETE operation, look at the status code from DELETE rather than from the previous PUT. fixes #1255 |
---|
186 | david-sarah@jacaranda.org**20101110010916 |
---|
187 | Ignore-this: 4e07b1b51036d68ed28ee3424faa4d2a |
---|
188 | ] |
---|
189 | [test_cli.py: test that 'tahoe mv' reports errors from the DELETE operation. refs #1255 |
---|
190 | david-sarah@jacaranda.org**20101112014653 |
---|
191 | Ignore-this: b498a4b185bcb309754052cdcdc3c187 |
---|
192 | ] |
---|
193 | [bundled zetuptoolz: prefer locally-available distributions over remotely-downloaded distributions above all |
---|
194 | zooko@zooko.com**20101117082657 |
---|
195 | Ignore-this: d349c06187191f7acef970a1d7939c12 |
---|
196 | This fixes #1233. Actually the previous patches—[20101103034740-93fa1-9df33552497282eb72a84e5b434d035974bf2dbb] and [20101117080828-92b7f-dc0239f30b26e7e5d40b228114fb399c1e190ec5]—fixed it, but with them zetuptoolz would download a higher-numbered distribution from the net instead of using the locally-available (fake) pycryptopp-0.5.24, thus preventing the tests from passing. This patch changes that behavior (which is an improvement in its own right) and also fixes a bug in the tests. |
---|
197 | ] |
---|
198 | [bundled zetuptoolz: choose a binary dist in preference to a source dist, even if the latter is newer, as long as the former satisfies the requirement |
---|
199 | zooko@zooko.com**20101117080828 |
---|
200 | Ignore-this: fa1cb6b23bc20ff60bca80d74d0c64d4 |
---|
201 | patch by David-Sarah, tiny bugfix to patch by Zooko |
---|
202 | ref: #1233 |
---|
203 | ] |
---|
204 | [bundled zetuptools: prefer platform-specific dists to platform-independent ones. refs #1233 |
---|
205 | david-sarah@jacaranda.org**20101103034740 |
---|
206 | Ignore-this: dad21647659e5f1f821355dc73dc33b5 |
---|
207 | ] |
---|
208 | [misc: gen-package-table: show only the highest-numbered package for each platform and each library |
---|
209 | zooko@zooko.com**20101120053905 |
---|
210 | Ignore-this: 38771b1d0b6050034ea82e5d2d75684a |
---|
211 | ] |
---|
212 | [tests: test-with-fake-dists: clean up *just* the pycryptopp-0.5.24 eggs when exiting |
---|
213 | zooko@zooko.com**20101118063109 |
---|
214 | Ignore-this: 1d2a35d9dec7e7c9264e51632c14ffce |
---|
215 | also don't set the PATH and PYTHONPATH, which is unnecessary for this test |
---|
216 | also wrap the behavior in a couple of functions, just for tidiness |
---|
217 | ] |
---|
218 | [setup: show-tool-versions: include the version of valgrind |
---|
219 | zooko@zooko.com**20101118030623 |
---|
220 | Ignore-this: 4b52e050468de1b89c6fb8b88f7a537a |
---|
221 | ] |
---|
222 | [setup: clean up fake pycryptopp distribution after test-with-fake-dists.py created it |
---|
223 | zooko@zooko.com**20101117093249 |
---|
224 | Ignore-this: b8aedca9cd492846f0248491125e1d5f |
---|
225 | ] |
---|
226 | [tests: test-with-fake-dists.py has the side-effect of injecting a fake package into ./support, so after that test rm -rf ./support, and likewise with ./pycryptopp*.egg. |
---|
227 | zooko@zooko.com**20101117090100 |
---|
228 | Ignore-this: acd63867b5f291127b54d80439e836f5 |
---|
229 | ] |
---|
230 | [setup: when testing, set the __requires__ as precisely as possible even if the version of this particular build of Tahoe-LAFS is not yet known (addresses test failure ref #1190, #1233) |
---|
231 | zooko@zooko.com**20101119074043 |
---|
232 | Ignore-this: 9bde8af892bbc966357eaec2f4ebb578 |
---|
233 | ] |
---|
234 | [tests: change test-with-fake-pkg to exercise a test suite which actually requires pycryptopp, thus making this a better test which can detect ill-installed pycryptopp |
---|
235 | zooko@zooko.com**20101118072334 |
---|
236 | Ignore-this: 750f432d3acedde244ef1ed7ebd77158 |
---|
237 | ] |
---|
238 | [tests: bump up the timeout on test_dirnode.Dirnode from 240s to 480s since it apparently took longer than 240s just now on François's ARM buildslave |
---|
239 | zooko@zooko.com**20101115092119 |
---|
240 | Ignore-this: e3e45c663386fe208eeedbccb2872aca |
---|
241 | ] |
---|
242 | [setup: remove --multi-version |
---|
243 | zooko@zooko.com**20101115090048 |
---|
244 | Ignore-this: 235bbe0d5645091d56db3b1414fd50b0 |
---|
245 | It causes copious scary-looking warning messages and I'm no longer sure if it was actually needed to accomplish our goals ref #530. |
---|
246 | ] |
---|
247 | [misc/build_helpers/gen-package-table.py: put 'n/a' in table entries for pywin32 on non-Windows platforms. Also remove some dead code. refs #1247 |
---|
248 | david-sarah@jacaranda.org**20101114193558 |
---|
249 | Ignore-this: 50c07d1cef22b6f6511ccfa539aa3afc |
---|
250 | ] |
---|
251 | [test_cli.py: fix a stale comment that incorrectly implied that test_cli runs CLI commands in subprocesses (it actually runs them using deferToThread). |
---|
252 | david-sarah@jacaranda.org**20101110022819 |
---|
253 | Ignore-this: 903b03121061d5b7185ff6333dac7bd4 |
---|
254 | ] |
---|
255 | [setup: include pycryptopp in the set of Python packages described in the show-tool-versions step (for cross-referencing with the test-with-fake-dists step, which behaves differently depending on what version(s) of pycryptopp are already present before it starts) |
---|
256 | zooko@zooko.com**20101114100540 |
---|
257 | Ignore-this: fd01732d1757e80f4a311ba2d38c5e3d |
---|
258 | ] |
---|
259 | [setup: gen-package-table.py -- Python packages can have . in their name |
---|
260 | zooko@zooko.com**20101114082643 |
---|
261 | Ignore-this: c42cd92da320375d2dd72018ad6c1d0b |
---|
262 | ] |
---|
263 | [setup: upgrade bundled version of darcsver to 1.7.1 to regain compatibility with Python 2.4 |
---|
264 | zooko@zooko.com**20101114082620 |
---|
265 | Ignore-this: 9bc9dd064e239003c1a94f1ba409ac96 |
---|
266 | ] |
---|
267 | [setup: specify that the version file must go into src/allmydata/_version.py . fixes #1259 |
---|
268 | zooko@zooko.com**20101114074040 |
---|
269 | Ignore-this: 9d5c58bc7faed738570b4b8529b129d5 |
---|
270 | ] |
---|
271 | [setup: upgrade bundled darcsver from 1.6.3 to 1.7.0 |
---|
272 | zooko@zooko.com**20101114073954 |
---|
273 | Ignore-this: 1f930652a20d818d44c0cb863856dad5 |
---|
274 | ref #1259, we're going to use its 'versionfiles' setup() keyword argument to specify where to write the version file. |
---|
275 | Remember, we have to bundle darcsver to work-around http://bitbucket.org/tarek/distribute/issue/55/revision-control-plugin-automatically-installed-as-a-build-dependency-is-not-present-when-another-build-dependency-is-being |
---|
276 | ] |
---|
277 | [setup: David-Sarah's new gen-package-table.py plus my patch to put the newer versions of Python first |
---|
278 | zooko@zooko.com**20101114073532 |
---|
279 | Ignore-this: 249c4db261a1deb14749ef778f1f7c7a |
---|
280 | fixes #1247 |
---|
281 | ] |
---|
282 | [setup: test whether the build system prefers binary dists which are new enough over source dists which are even newer |
---|
283 | zooko@zooko.com**20101113152822 |
---|
284 | Ignore-this: d56b67475aec5a7aa901dba7bc59083c |
---|
285 | ref: #1233 |
---|
286 | ] |
---|
287 | [tahoe_mv.py: use do_http, not urllib.openurl, in order to avoid connecting to the webapi server via a proxy. refs #1253 |
---|
288 | david-sarah@jacaranda.org**20101110005336 |
---|
289 | Ignore-this: 418b9a1c7873250a35592d3463506540 |
---|
290 | ] |
---|
291 | [test_system.py: test for 'tahoe mv' with the http_proxy and HTTP_PROXY variables set. refs #1253 |
---|
292 | david-sarah@jacaranda.org**20101110033649 |
---|
293 | Ignore-this: a75557ba7589352768d227e2cd37299e |
---|
294 | ] |
---|
295 | [docs: NEWS: merge two additions |
---|
296 | zooko@zooko.com**20101111055851 |
---|
297 | Ignore-this: 13105496bb418ebbd570ba68ef347f2 |
---|
298 | ] |
---|
299 | [setup: remove separate licensing declaration |
---|
300 | zooko@zooko.com**20101111044530 |
---|
301 | Ignore-this: 2992189602af3ef0a420a1b7273f6344 |
---|
302 | Whenever Free Software/Open Source legal folks are examining the Tahoe-LAFS source code, it seems like there has to be a discussion and documentation about every single licensing declaration. Since this one is (was) permissive, then you would think it could be avoided, but I'm not betting on it. We would probably have to install a copy of the MIT licence into every one of the "copyright" files under the debian/ subdirectory, for example. So: let's just let hashbasedsig.py be licensed the same way as the rest of Tahoe-LAFS. |
---|
303 | ] |
---|
304 | [docs: fix error in .rst formatting introduced by renaming Tahoe to Tahoe-LAFS in a header |
---|
305 | zooko@zooko.com**20101111044344 |
---|
306 | Ignore-this: 6f6823891dd22d99e38ebeb9aa57b298 |
---|
307 | ] |
---|
308 | [docs: NEWS: refs #1253 |
---|
309 | zooko@zooko.com**20101111044118 |
---|
310 | Ignore-this: 23d1cfbd2d43a68ca496958b55e4688f |
---|
311 | ] |
---|
312 | [docs: added permissions to avoid licence-incompatibility with other Free/Open Source licences |
---|
313 | zooko@zooko.com**20101111043926 |
---|
314 | Ignore-this: 190cff2d0f9e910072bc0705e5e9844c |
---|
315 | ] |
---|
316 | [test_client.py: change overzealous use of failUnlessReallyEqual on integers back to failUnlessEqual. |
---|
317 | david-sarah@jacaranda.org**20101109230816 |
---|
318 | Ignore-this: 6488663c0c9212f548f8b498c42c9d30 |
---|
319 | ] |
---|
320 | [misc/build_helpers/show-tool-versions.py: look for zetuptoolz egg in the current directory, not the parent. |
---|
321 | david-sarah@jacaranda.org**20101107233615 |
---|
322 | Ignore-this: 6e7081a69584d07d5c38fc9de6749254 |
---|
323 | ] |
---|
324 | [misc/build_helpers/show-tool-versions.py: if we can't import pkg_resources, insert the bundled zetuptoolz egg onto sys.path. |
---|
325 | david-sarah@jacaranda.org**20101106234404 |
---|
326 | Ignore-this: adb1bd5800129a6c9596f89620146f85 |
---|
327 | ] |
---|
328 | [setup.py: fix a bug in the check for whether we are running 'trial' or 'test', that affected zooko's test for #1233. refs #1233 |
---|
329 | david-sarah@jacaranda.org**20101105235415 |
---|
330 | Ignore-this: bc79517853f39301218d7d840de830f2 |
---|
331 | ] |
---|
332 | [misc/build_helpers/gen-package-table.py: allow all lowercase letters except 'w' (for example, 'c' and 'dev') in package versions. |
---|
333 | david-sarah@jacaranda.org**20101105154756 |
---|
334 | Ignore-this: 1189fad2b0d210e2f827bb710f532f7e |
---|
335 | ] |
---|
336 | [misc/build_helpers/run_trial.py: minor refactoring -- make variable names consistent between run_trial.py and test_runner.py |
---|
337 | david-sarah@jacaranda.org**20101104012027 |
---|
338 | Ignore-this: 443fb127ad39015fb2d82bd1beacfa66 |
---|
339 | ] |
---|
340 | [NEWS: entry for #1242 (tilde expansion in 'tahoe backup --exclude-from'). refs #1242 |
---|
341 | david-sarah@jacaranda.org**20101104011915 |
---|
342 | Ignore-this: 1c85e7c74f5a48b4cdae5aa073c6b9fb |
---|
343 | ] |
---|
344 | [setup: fix gen-package-table to allow the "_r$REV" version numbers of packages |
---|
345 | zooko@zooko.com**20101104073944 |
---|
346 | Ignore-this: b6b72b0d2a207929d4ffb0cfc988e8ee |
---|
347 | ] |
---|
348 | [misc/build_helpers/gen-package-table.py: fix missing 'r's (meant to delete CRs :-) |
---|
349 | david-sarah@jacaranda.org**20101103043718 |
---|
350 | Ignore-this: ffa25a18637b6165725a49a79bfa6cc |
---|
351 | ] |
---|
352 | [add misc/build_helpers/gen-package-table.py. refs #1247 |
---|
353 | david-sarah@jacaranda.org**20101103043328 |
---|
354 | Ignore-this: 3185c869d98d6fecbae4bcc6b74a810d |
---|
355 | ] |
---|
356 | [tests: make test-with-fake-pkg's unacceptably-old fake pycryptopp be 0.5.13 instead of 0.5.17, since 0.5.17 is acceptably new on non-x86 archs |
---|
357 | zooko@zooko.com**20101102053357 |
---|
358 | Ignore-this: a400f6f73c7574f2b2266547b0e7b051 |
---|
359 | Also move the fakepkgs directory to be in misc/build_helpers/ instead of in the base of the source tree. |
---|
360 | ] |
---|
361 | [test_runner.py: fix test failure in test_the_right_code after applying zooko's change to test-with-fake-pkg.py |
---|
362 | david-sarah@jacaranda.org**20101102035905 |
---|
363 | Ignore-this: 71b467615ae7dcdfbf84049e60a08933 |
---|
364 | ] |
---|
365 | [setup: FreeStorm's WinXP-x86-py2.6 buildslave has informed us that there is yet a fourth way to spell "i386" in Python |
---|
366 | zooko@zooko.com**20101101052142 |
---|
367 | Ignore-this: 732892975c19f7fd18caeb071f09ef7 |
---|
368 | ] |
---|
369 | [setup: add platform.machine() to show-tool-versions, because FreeStorm WinXP builder apparently thinks that its platform.machine() is not one of ['i386', 'x86_64', 'amd64', ''], since it is requiring pycryptopp >= 0.5.14 instead of pycryptopp >= 0.5.20 |
---|
370 | zooko@zooko.com**20101101042721 |
---|
371 | Ignore-this: 322a3e5af9785ebca3452f3937ce47a4 |
---|
372 | ] |
---|
373 | [edit docs for English usage, rename "Tahoe" to "Tahoe-LAFS" in docs/configuration.rst, rename a variable in bin/tahoe-script.template for clarity, update François's CREDITS entry |
---|
374 | zooko@zooko.com**20101101042602 |
---|
375 | Ignore-this: d192c4c9660b1b9173db19d0e533dc22 |
---|
376 | ] |
---|
377 | [allmydata/__init__.py: move the call to require_auto_deps() to the top again, since the [4784] patch turned out not to be the cause of the failure on the 'mm netbsd5' buildslave. |
---|
378 | david-sarah@jacaranda.org**20101101003316 |
---|
379 | Ignore-this: 879a5188ff2529fb755b6e594c59aeb2 |
---|
380 | ] |
---|
381 | [allmydata/__init__.py: put the _auto_deps.require_auto_deps() call back in exactly the same place it was prior to [4784]. |
---|
382 | david-sarah@jacaranda.org**20101031174649 |
---|
383 | Ignore-this: c5f4fbb2c444d7b05b1d30a199b6178f |
---|
384 | ] |
---|
385 | [allmydata/__init__.py: suppress a DeprecationWarning for the sha module on importing pycrypto. |
---|
386 | david-sarah@jacaranda.org**20101031160636 |
---|
387 | Ignore-this: 414d55a0da432cfb0d65329a88e13396 |
---|
388 | ] |
---|
389 | [misc/build_helpers/run_trial.py: fix another typo in last patch. |
---|
390 | david-sarah@jacaranda.org**20101031160332 |
---|
391 | Ignore-this: 61131c5775a2393b6862f76b7bc222f |
---|
392 | ] |
---|
393 | [misc/build_helpers/run_trial.py: fix typo in last patch. |
---|
394 | david-sarah@jacaranda.org**20101031155215 |
---|
395 | Ignore-this: a2fbecf858c0a399e938d4f1ade7329b |
---|
396 | ] |
---|
397 | [allmydata/__init__.py: call require_auto_deps() after importing nevow and twisted, reverting change in [4784]. Also fix a missing 'warnings.filters.pop()'. |
---|
398 | david-sarah@jacaranda.org**20101031153828 |
---|
399 | Ignore-this: 8a5cd7798674d56868e9c333a77a4ac2 |
---|
400 | ] |
---|
401 | [misc/build_helpers/run_trial.py: fix false positive on directory check that can occur when running run_trial from test-with-fake-pkg manually. |
---|
402 | david-sarah@jacaranda.org**20101031153613 |
---|
403 | Ignore-this: 7d4a0758a305cbfdd296570a9c1a88d2 |
---|
404 | ] |
---|
405 | [allmydata.__init__.py: temporary hack to debug failure on midnightmagic's buildslave |
---|
406 | david-sarah@jacaranda.org**20101031055003 |
---|
407 | Ignore-this: 2ac28b2f19a436a374399b4c59d29cc7 |
---|
408 | ] |
---|
409 | [NEWS: entries for #1190 and #1212, and minor cleanups. refs #1190, #1212 |
---|
410 | david-sarah@jacaranda.org**20101031051426 |
---|
411 | Ignore-this: c318dff69296ae1e1a897752b5221870 |
---|
412 | ] |
---|
413 | [tahoe backup: perform tilde expansion in exclude-from filename (version 2). fixes #1241 |
---|
414 | david-sarah@jacaranda.org**20101031035231 |
---|
415 | Ignore-this: 65e6cd2247dd8d1fc025758d740708c0 |
---|
416 | ] |
---|
417 | [NEWS: add news entry for #1223 |
---|
418 | Francois Deppierraz <francois@ctrlaltdel.ch>**20101030111130 |
---|
419 | Ignore-this: 6b6afd4b0f0527a3c9784c1db95d083 |
---|
420 | ] |
---|
421 | [NEWS: add a NEWS entry about bug #1045 |
---|
422 | Francois Deppierraz <francois@ctrlaltdel.ch>**20101030101351 |
---|
423 | Ignore-this: 7e758afbbd0f1d22a5d0b4fc38661c1d |
---|
424 | ] |
---|
425 | [setup: run require_auto_deps() before attempting to import any deps in __init__.py |
---|
426 | zooko@zooko.com**20101030081035 |
---|
427 | Ignore-this: ffcaf2450628543e020e9919e455f691 |
---|
428 | For one thing, this makes missing-dependency failures into DistributionNotFound errors instead of ImportErrors, which might be more useful to the user. For another thing, if someone is using distributions that were installed with --multi-version, then they might be not importable until after require_auto_deps() has been run. (The docs claim that this would be the case, but we don't have an example of this happening at this time.) |
---|
429 | ] |
---|
430 | [setup: show-tool-versions: emit module and __version__ information even when module name != distribution (package) name, and add TwistedCore, TwistedWeb, and TwistedConch |
---|
431 | zooko@zooko.com**20101030070233 |
---|
432 | Ignore-this: 3df19910090d44502ddeeef5d9c29a7 |
---|
433 | ] |
---|
434 | [misc/build_helpers/test-with-fake-pkg.py: look for eggs in the parent of the src directory. refs #1190 |
---|
435 | david-sarah@jacaranda.org**20101030034303 |
---|
436 | Ignore-this: 4a3cf286272cdb5d06aac15fb5998b33 |
---|
437 | ] |
---|
438 | [scripts/runner.py: fix unused import of allmydata. refs #1190 |
---|
439 | david-sarah@jacaranda.org**20101030003149 |
---|
440 | Ignore-this: b2fc67f6192ea7ccf8a5ad010ce74a64 |
---|
441 | ] |
---|
442 | [scripts/runner.py: remove pkg_resources.require() calls. These are at best redundant because we have already called _auto_deps.require_auto_deps() (from allmydata.__init__) at that point, and they are causing failure of the test-from-prefixdir step on some buildslaves. refs #1190 |
---|
443 | david-sarah@jacaranda.org**20101029235328 |
---|
444 | Ignore-this: e00dee63acc7b76a5755025d75abf524 |
---|
445 | ] |
---|
446 | [misc/build_helpers/run_trial.py: look for zetuptoolz egg in the parent directory, not the cwd of run_trial. refs #1190 |
---|
447 | david-sarah@jacaranda.org**20101029230329 |
---|
448 | Ignore-this: 1596fb8c290d1c706f079701b1857db8 |
---|
449 | ] |
---|
450 | [bundled zetuptoolz: if __main__.__requires__ exists then do not add packages to the working set if they provide an incompatible version of a package. Also put a complete __requires__ listing the transitive closure of dependencies at the beginning of generated scripts, rather than a shallow __requires__ specifying only the application version. refs #1190 |
---|
451 | david-sarah@jacaranda.org**20101029223111 |
---|
452 | Ignore-this: a95f1967884340e53bf3adf90db40cfc |
---|
453 | ] |
---|
454 | [setup.py, misc/build_helpers/run_trial.py: use undocumented __requires__ variable to cause setuptools/zetuptoolz to put the correct versions of dependencies on sys.path. Also ensure that run_trial adds the bundled zetuptoolz egg at the start of sys.path if present. Make the source directory comparison work correctly for the test-with-fake-pkg build step. refs #1190 |
---|
455 | david-sarah@jacaranda.org**20101029222825 |
---|
456 | Ignore-this: 8b09366eb6ce3d55c7db5239077a0fac |
---|
457 | ] |
---|
458 | [test_runner.py: fix error in BinTahoe.test_version_no_noise introduced by last patch. refs #1235 |
---|
459 | david-sarah@jacaranda.org**20101029221123 |
---|
460 | Ignore-this: 4bf21ea34768e8e6adf104e56f939fd0 |
---|
461 | ] |
---|
462 | [test_runner.py: also allow 'from pkg_resources import load_entry_point' as noise. refs #1235. |
---|
463 | david-sarah@jacaranda.org**20101029204246 |
---|
464 | Ignore-this: a47440aa2cdd29ce55ac7c6c7f4bcaf2 |
---|
465 | ] |
---|
466 | [test_runner.py: if the only noise is 'UserWarning: Unbuilt egg for setuptools', skip instead of failing the no_noise tests. This version avoids 'any' to be compatible with Python < 2.5. refs #1235. |
---|
467 | david-sarah@jacaranda.org**20101029191804 |
---|
468 | Ignore-this: 83ca1543fc9673e664a8eeefe1eba429 |
---|
469 | ] |
---|
470 | [NEWS: clarify (strengthen) description of what backdoors.rst declares, and add bugfix entries for 'tahoe cp' and Windows console bugs. refs #1216, #1224, #1232 |
---|
471 | david-sarah@jacaranda.org**20101028180046 |
---|
472 | Ignore-this: 1c3eef3cd353b06b6ee00ce87c5ef59a |
---|
473 | ] |
---|
474 | [make ResponseCache smarter to avoid memory leaks: don't record timestamps, use DataSpans to merge entries, and clear the cache when we see a new seqnum. refs #1045, #1229 |
---|
475 | david-sarah@jacaranda.org**20101027043302 |
---|
476 | Ignore-this: 88fd6fba7f35a2f8af1693b92718f5f3 |
---|
477 | ] |
---|
478 | [windows/fixups.py: limit length of string passed in a single call to WriteConsoleW. fixes #1232. |
---|
479 | david-sarah@jacaranda.org**20101027021636 |
---|
480 | Ignore-this: fbd99e0d22493974696d37925d97c7d6 |
---|
481 | ] |
---|
482 | [scripts/tahoe_backup.py: oops, fix missing import, thanks pyflakes |
---|
483 | Brian Warner <warner@lothar.com>**20101029094223 |
---|
484 | Ignore-this: 285c35af824935641a5be35c008b080c |
---|
485 | |
---|
486 | test_cli.py: hush minor pyflakes complaint |
---|
487 | ] |
---|
488 | [mutable/servermap.py: update comment. Closes #1231. |
---|
489 | Brian Warner <warner@lothar.com>**20101029091424 |
---|
490 | Ignore-this: 80bf854123fc254e097a81b82bdf4990 |
---|
491 | ] |
---|
492 | [tahoe_cp.py: Don't call urllib.quote with an Unicode argument, fix #1224 |
---|
493 | Brian Warner <warner@lothar.com>**20101029084520 |
---|
494 | Ignore-this: 5524722d5e5babbb73ca0969d54967f6 |
---|
495 | tahoe_backup.py: Fix another (potential) occurrence of calling urllib.quote() |
---|
496 | with an Unicode parameter |
---|
497 | ] |
---|
498 | [fix #1223, crash+inefficiency during repair due to read overrun |
---|
499 | Brian Warner <warner@lothar.com>**20101029082036 |
---|
500 | Ignore-this: e6aa0295ad254544da3b5cc41b33d862 |
---|
501 | |
---|
502 | * repairer (really the uploader) reads beyond end of input file (Uploadable) |
---|
503 | * new-downloader does not tolerate overreads |
---|
504 | * uploader does lots of tiny reads (inefficient) |
---|
505 | |
---|
506 | This fixes the last two. The uploader still does a single overread at the end |
---|
507 | of the input file, but now that's ok so we can leave it in place. The |
---|
508 | uploader now expects the Uploadable to behave like a normal disk |
---|
509 | file (reading beyond EOF will return less data than was asked for), and now |
---|
510 | the new-downloadable behaves that way. |
---|
511 | ] |
---|
512 | [add misc/build_helpers/test-with-fake-pkg.py. refs #1190 |
---|
513 | david-sarah@jacaranda.org**20101029025150 |
---|
514 | Ignore-this: 995f220962708f1bad83092161130f67 |
---|
515 | ] |
---|
516 | [startstop_node.py: pyflakes import fix. refs #1190 |
---|
517 | david-sarah@jacaranda.org**20101028014805 |
---|
518 | Ignore-this: 369ef5022c8ee5a0d8341af01553bcef |
---|
519 | ] |
---|
520 | ['tahoe start': use import+call rather than find+spawn |
---|
521 | "Brian Warner <warner@lothar.com>"**20101027061342 |
---|
522 | |
---|
523 | This removes the need to use a locally-built (dependency) bin/twistd, and |
---|
524 | removes a big chunk of behavior differences between unix and windows. It |
---|
525 | also happens to resolve the "client node probably started" uncertainty. |
---|
526 | Might help with #1190, #602, and #71. |
---|
527 | ] |
---|
528 | [docs/known_issues.rst: Add section on traffic analysis. Fix URL for current version of file. |
---|
529 | david-sarah@jacaranda.org**20101024234259 |
---|
530 | Ignore-this: f3416e79d3bb833f5118da23e85723ad |
---|
531 | ] |
---|
532 | [test_mutable.py: add test for ResponseCache memory leak. refs #1045, #1129 |
---|
533 | david-sarah@jacaranda.org**20101024193409 |
---|
534 | Ignore-this: 3aee7f0677956cc6deaccb4d5b8e415f |
---|
535 | ] |
---|
536 | [test_encodingutil.py: test_argv_to_unicode modified the wrong encoding variable. fixes #1214 |
---|
537 | david-sarah@jacaranda.org**20101023035810 |
---|
538 | Ignore-this: e5f1f849931b96939facc53d93ff61c5 |
---|
539 | ] |
---|
540 | [docs/running.html: fix missing end-quote, and change frontends/ doc references to .rst. |
---|
541 | david-sarah@jacaranda.org**20101024171500 |
---|
542 | Ignore-this: 47c645a6595e1790b1d1adfa71af0e1d |
---|
543 | ] |
---|
544 | [docs/running.html: 'tahoe create-client' now creates a node with storage disabled. Also change configuration.txt references to configuration.rst. |
---|
545 | david-sarah@jacaranda.org**20101024170431 |
---|
546 | Ignore-this: e5b048055494ba3505bb8a506610681c |
---|
547 | ] |
---|
548 | [doc: add explanation of the motivation for the surprising and awkward API to erasure coding |
---|
549 | zooko@zooko.com**20101015060202 |
---|
550 | Ignore-this: 428913ff6e1bf5b393deffb1f20b949b |
---|
551 | ] |
---|
552 | [setup: catch and log ValueError from locale.getdefaultlocale() in show-tool-versions.py |
---|
553 | zooko@zooko.com**20101015054440 |
---|
554 | Ignore-this: 827d91490562c32ed7cf6526dfded773 |
---|
555 | I got a bug report from Mathias Baert showing that locale.getdefaultlocale() raises an exception on his Mac OS X system. Heh. |
---|
556 | ] |
---|
557 | [docs: update how-to-make-a-release doc with a few tweaks from the 1.8.0 process |
---|
558 | zooko@zooko.com**20101015054413 |
---|
559 | Ignore-this: ca5e9478531a3393792ae283239549dd |
---|
560 | ] |
---|
561 | [docs: update NEWS ref: #1216 |
---|
562 | zooko@zooko.com**20101015053719 |
---|
563 | Ignore-this: 2e0b92e4145d667cdf075e64b7965530 |
---|
564 | ] |
---|
565 | [docs: fix tab-vs-spaces, make some CLI examples <tt>/"literal", wrap some to |
---|
566 | Brian Warner <warner@lothar.com>**20101015060606 |
---|
567 | Ignore-this: eae08bdf0afb19a2fbf41c31e70a8122 |
---|
568 | 80-cols, remove spurious whitespace. Add rst2html.py rule to Makefile. |
---|
569 | ] |
---|
570 | [docs: add Peter Secor, Shawn Willden, and Terrell Russell as signatories to docs/backdoors.rst |
---|
571 | zooko@zooko.com**20101015053242 |
---|
572 | Ignore-this: c77adf819d664f673e17c4aaeb353f33 |
---|
573 | ] |
---|
574 | [docs: convert all .txt docs to .rst thanks to Ravi Pinjala |
---|
575 | zooko@zooko.com**20101015052913 |
---|
576 | Ignore-this: 178a5122423189ecfc45b142314a78ec |
---|
577 | fixes #1225 |
---|
578 | ] |
---|
579 | [docs: add statement on our refusal to insert backdoors |
---|
580 | zooko@zooko.com**20101006051147 |
---|
581 | Ignore-this: 644d308319a7b80c4434bdff9760404a |
---|
582 | ] |
---|
583 | [setup: add --multi-version to the "setup.py develop" command-line |
---|
584 | zooko@zooko.com**20101005182350 |
---|
585 | Ignore-this: 709155cc21caff29826b8d41a8c8d63d |
---|
586 | fixes #530. I earlier tried this twice (see #530 for history) and then twice rolled it back due to some problems that arose. However, I didn't write down what the problems were in enough detail on the ticket that I can tell today whether those problems are still issues, so here goes the third attempt. (I did write down on the ticket that it would not create site.py or .pth files in the target directory with --multi-version mode, but I didn't explain why *that* was a problem.) |
---|
587 | ] |
---|
588 | [setup: use execfile to access _auto_deps.py in its proper location of src/allmydata/ instead of copying it into place when setup.py is executed |
---|
589 | zooko@zooko.com**20100906055714 |
---|
590 | Ignore-this: c179b42672d775580afad40121f86812 |
---|
591 | ] |
---|
592 | [trivial: M-x whitespace-cleanup |
---|
593 | zooko@zooko.com**20100903144712 |
---|
594 | Ignore-this: 1bb764d11ac69b4a35ea091cfb13158a |
---|
595 | ] |
---|
596 | [minor: remove unused interface declaration, change allmydata.org to tahoe-lafs.org in email address, fix wording in relnotes.txt |
---|
597 | zooko@zooko.com**20100930153708 |
---|
598 | Ignore-this: a452969228afed2774de375e29fa3048 |
---|
599 | ] |
---|
600 | [immutable/repairer.py: don't use the default happiness setting when repairing |
---|
601 | Kevan Carstensen <kevan@isnotajoke.com>**20100927200102 |
---|
602 | Ignore-this: bd704d9744b970849da8d46a16b8089a |
---|
603 | ] |
---|
604 | [NEWS: note dependency updates to pycryptopp and pycrypto. |
---|
605 | david-sarah@jacaranda.org**20100924191207 |
---|
606 | Ignore-this: eeaf5c9c9104f24c450c2ec4482ac1ee |
---|
607 | ] |
---|
608 | [TAG allmydata-tahoe-1.8.0 |
---|
609 | zooko@zooko.com**20100924021631 |
---|
610 | Ignore-this: 494ca0a885c5e20c883845fc53e7ab5d |
---|
611 | ] |
---|
612 | Patch bundle hash: |
---|
613 | c99af354a5bc2e8a1d266fc6a85e59967f905331 |
---|