1 | Tue Jun 16 20:23:25 MDT 2009 Shawn Willden <shawn-tahoe@willden.org> |
---|
2 | * Fix missing size for JSON of mutable files |
---|
3 | |
---|
4 | New patches: |
---|
5 | |
---|
6 | [Fix missing size for JSON of mutable files |
---|
7 | Shawn Willden <shawn-tahoe@willden.org>**20090617022325 |
---|
8 | Ignore-this: ed4f17772853593f225b494aeb87f44b |
---|
9 | ] { |
---|
10 | hunk ./src/allmydata/web/filenode.py 181 |
---|
11 | d.addCallback(lambda dn: FileDownloader(dn, filename)) |
---|
12 | return d |
---|
13 | if t == "json": |
---|
14 | - return FileJSONMetadata(ctx, self.node) |
---|
15 | + if self.node.is_mutable(): |
---|
16 | + d = defer.maybeDeferred(self.node.get_size_of_best_version) |
---|
17 | + d.addCallback(lambda sz: FileJSONMetadata(ctx, self.node, sz)) |
---|
18 | + return d |
---|
19 | + else: |
---|
20 | + return FileJSONMetadata(ctx, self.node) |
---|
21 | if t == "info": |
---|
22 | return MoreInfo(self.node) |
---|
23 | if t == "uri": |
---|
24 | hunk ./src/allmydata/web/filenode.py 417 |
---|
25 | return req.deferred |
---|
26 | |
---|
27 | |
---|
28 | -def FileJSONMetadata(ctx, filenode): |
---|
29 | +def FileJSONMetadata(ctx, filenode, best_size = None): |
---|
30 | if filenode.is_readonly(): |
---|
31 | rw_uri = None |
---|
32 | ro_uri = filenode.get_uri() |
---|
33 | hunk ./src/allmydata/web/filenode.py 425 |
---|
34 | rw_uri = filenode.get_uri() |
---|
35 | ro_uri = filenode.get_readonly_uri() |
---|
36 | data = ("filenode", {}) |
---|
37 | - data[1]['size'] = filenode.get_size() |
---|
38 | + if best_size: |
---|
39 | + data[1]['size'] = best_size |
---|
40 | + else: |
---|
41 | + data[1]['size'] = filenode.get_size() |
---|
42 | if ro_uri: |
---|
43 | data[1]['ro_uri'] = ro_uri |
---|
44 | if rw_uri: |
---|
45 | } |
---|
46 | |
---|
47 | Context: |
---|
48 | |
---|
49 | [tests: bump up a timeout that expired on Zandr's box |
---|
50 | zooko@zooko.com**20090613195703 |
---|
51 | Ignore-this: 853000f43665396b3734a99f72bd472d |
---|
52 | ] |
---|
53 | [util: hooray! A clean implementation of this simple utility! Black Dew pointed out that the inverse of time.gmtime() is hidden in the "calendar" module. |
---|
54 | zooko@zooko.com**20090613160112 |
---|
55 | Ignore-this: 8359cc48ca1b8e2793e8b2afe2050cf4 |
---|
56 | ] |
---|
57 | [util: Brian's horrible hack to figure out how much localtime and utctime differ. Now we'll see if it works on Windows. |
---|
58 | zooko@zooko.com**20090612204556 |
---|
59 | Ignore-this: 8c36431da4707da76472956c7750ecbd |
---|
60 | ] |
---|
61 | [util: oops, time.tzset() doesn't work on Windows -- hopefully the new "London" unit test passes on Windows when we skip tzset() on platforms that don't have it |
---|
62 | zooko@zooko.com**20090612000920 |
---|
63 | Ignore-this: 7d314b8334cfa3f65f9635e3d3eb727e |
---|
64 | ] |
---|
65 | [setup: edit install.html to warn Windows users away from Python v2.6 |
---|
66 | zooko@zooko.com**20090611225506 |
---|
67 | Ignore-this: 89ad63eab49ede883ef92f2de5b5fc54 |
---|
68 | ] |
---|
69 | [util: fix time_format.iso_utc_time_to_seconds() so that it works even in London |
---|
70 | zooko@zooko.com**20090611221129 |
---|
71 | Ignore-this: 14dbb9840587797f848226fdb3645c08 |
---|
72 | ] |
---|
73 | [setup: run the same "make quicktest" on Windows as on non-Windows |
---|
74 | zooko@zooko.com**20090611193214 |
---|
75 | Ignore-this: d0c78377d3892373ec3d91e9e98bd8bd |
---|
76 | I checked and it behaves about as well on Windows as the previous version did. |
---|
77 | ] |
---|
78 | [tests: significantly increase timeouts that triggered on Zandr's ARM box |
---|
79 | zooko@zooko.com**20090610161043 |
---|
80 | Ignore-this: 2b3c556c5166a8267b4b15664d3aadfb |
---|
81 | ] |
---|
82 | [test: multiple by 10 or so all timeouts that Zandr's ARM box just overran |
---|
83 | zooko@zooko.com**20090610125639 |
---|
84 | Ignore-this: bf62f063ab46814fd78de55a5fbc9d84 |
---|
85 | ] |
---|
86 | [tests: bump up timeout on a test that timed out on draco |
---|
87 | zooko@zooko.com**20090610044628 |
---|
88 | Ignore-this: f598b98cbae44dc947937c6ca54c10cb |
---|
89 | ] |
---|
90 | [tests: raise the timeout for test_cli since Zandr's ARM machine totally burst through the old one |
---|
91 | zooko@zooko.com**20090609210509] |
---|
92 | [test_cli.Backup: increase timeout massively, it takes 1200s on zandr's ARM linkstation |
---|
93 | warner@lothar.com**20090609052801] |
---|
94 | [tests: double the timeouts on some tests which time-out on Francois's box |
---|
95 | zooko@zooko.com**20090609021753 |
---|
96 | Ignore-this: b2727b04402f24a9b9123d2f84068106 |
---|
97 | ] |
---|
98 | [tests: bump up timeouts so that the tests can finish before timeout on Francois's little arm box |
---|
99 | zooko@zooko.com**20090608225557 |
---|
100 | Ignore-this: fb83698338b2f12546cd3e1dcb896d34 |
---|
101 | ] |
---|
102 | [tests: increase timeouts on some other tests that timed-out on Francois's arm box |
---|
103 | zooko@zooko.com**20090605143437 |
---|
104 | Ignore-this: 2903cc20d914fc074c8d7a6c47740ba6 |
---|
105 | ] |
---|
106 | [tests: bump up the timeout on a bunch of tests that took longer than the default timeout (120s) on François Lenny-armv5tel |
---|
107 | zooko@zooko.com**20090605031444 |
---|
108 | Ignore-this: 84d67849b1f8edc88bf7001e31b5f7f3 |
---|
109 | ] |
---|
110 | [backup: remove the --no-backupdb command, the handling of "can't import sqlite", and the related tests, and change an error message to more correctly indicate failure to load the database from disk rather than failure to import sqlite module |
---|
111 | zooko@zooko.com**20090604173131 |
---|
112 | Ignore-this: 8200a9fdfc49243c280ecd1d0c44fa19 |
---|
113 | Fixes #728. |
---|
114 | ] |
---|
115 | [setup: require pysqlite >= v2.0.5. if we are running on Python < 2.5 |
---|
116 | zooko@zooko.com**20090604154548 |
---|
117 | Ignore-this: cf04f46079821df209d01dad2e24b40b |
---|
118 | ] |
---|
119 | [setup: add pysqlite and sqlite to get_package_versions() |
---|
120 | zooko@zooko.com**20090604153728 |
---|
121 | Ignore-this: a1dea7fabeab2b08fb0d8d462facdb4d |
---|
122 | ] |
---|
123 | [more refactoring: move get_all_serverids() and get_nickname_for_serverid() from Client to storage_broker |
---|
124 | warner@lothar.com**20090602030750] |
---|
125 | [more storage_broker refactoring: downloader gets a broker instead of a client, |
---|
126 | warner@lothar.com**20090602022511 |
---|
127 | use Client.get_storage_broker() accessor instead of direct attribute access. |
---|
128 | ] |
---|
129 | [test_runner.py: remove test_client_no_noise: the issue in question is |
---|
130 | warner@lothar.com**20090601225007 |
---|
131 | ticketed in http://divmod.org/trac/ticket/2830 and doesn't need a Tahoe-side |
---|
132 | change, plus this test fails on win32 for unrelated reasons (and test_client |
---|
133 | is the place to think about the win32 issue). |
---|
134 | ] |
---|
135 | [remove plaintext-hashing code from the helper interface, to close #722 |
---|
136 | warner@lothar.com**20090601224916 |
---|
137 | and deny the Helper the ability to mount a partial-information-guessing |
---|
138 | attack. This will probably break compatibility between new clients and very |
---|
139 | old (pre-1.0) helpers. |
---|
140 | ] |
---|
141 | [start to factor server-connection-management into a distinct 'StorageServerFarmBroker' object, separate from the client and the introducer. This is the starting point for #467: static server selection |
---|
142 | warner@lothar.com**20090601210604] |
---|
143 | [mutable: catch and display first error, so code bugs which break all servers get displayed better |
---|
144 | warner@lothar.com**20090601210407] |
---|
145 | [misc/run-with-pythonpath.py: exec() the child (on unix), to remove the intermediate process |
---|
146 | warner@lothar.com**20090601210137] |
---|
147 | [docs: small edit to about.html |
---|
148 | zooko@zooko.com**20090528233422 |
---|
149 | Ignore-this: 1cfbb1f8426ed6d63b2d3952e4464ddc |
---|
150 | ] |
---|
151 | [docs: add links to Tahoe-LAFS for Paranoids and Tahoe-LAFS for Corporates in about.html |
---|
152 | zooko@zooko.com**20090528232717 |
---|
153 | Ignore-this: 7b70baa700d6b6f6e9ceec4132efe5 |
---|
154 | ] |
---|
155 | [docs: edit about.html and include network-and-reliance-topology.png (loaded from http://allmydata.org ) |
---|
156 | zooko@zooko.com**20090527150916 |
---|
157 | Ignore-this: 44adc61cde8ced8be2f0a7dfc7d95dad |
---|
158 | ] |
---|
159 | [docs: a few more edits to network-and-reliance-topology.svg |
---|
160 | zooko@zooko.com**20090527150458 |
---|
161 | Ignore-this: 2eac8c33fe71be25ff809b399c6193c1 |
---|
162 | ] |
---|
163 | [docs: update network-and-reliance-topology.svg for beauty and clarity |
---|
164 | zooko@zooko.com**20090527031123 |
---|
165 | Ignore-this: 5510914849771900ac29b4312470d84 |
---|
166 | ] |
---|
167 | [docs: update NEWS, relnotes.txt, CREDITS to mention WUI Style |
---|
168 | zooko@zooko.com**20090526233654 |
---|
169 | Ignore-this: 72d16ec833bc4a22af23d29ea1d5ff8b |
---|
170 | ] |
---|
171 | [Modify markup of Tahoe web pages to be more amenable to styling; some minor changes of wording. |
---|
172 | Kevin Reid <kpreid@mac.com>**20090526232545 |
---|
173 | Ignore-this: 8845937f0df6c7ddc07abe3211428a6f |
---|
174 | ] |
---|
175 | [Tweak wording in directory page: not-read-only is "modifiable", mention creating a directory _in this directory_. |
---|
176 | Kevin Reid <kpreid@mac.com>**20090526232414 |
---|
177 | Ignore-this: f006ec52ba2051802e025a60bcface56 |
---|
178 | ] |
---|
179 | [Comment on duplication of code/markup found during styling project. |
---|
180 | Kevin Reid <kpreid@mac.com>**20090503203442 |
---|
181 | Ignore-this: a4b7f9f0ab57d2c03be9ba761be8d854 |
---|
182 | ] |
---|
183 | [Add CSS styles to spiff up the Tahoe WUI's appearance, particularly the welcome page and directories. |
---|
184 | Kevin Reid <kpreid@mac.com>**20090503203142 |
---|
185 | Ignore-this: 5c50af241c1a958b5180ef2b6a49f626 |
---|
186 | ] |
---|
187 | [Link all Tahoe web pages to the /tahoe_css stylesheet which already exists. |
---|
188 | Kevin Reid <kpreid@mac.com>**20090503202533 |
---|
189 | Ignore-this: 2ea8d14d3168b9502cf39d5ea3f2f2a8 |
---|
190 | ] |
---|
191 | [Fix broken link from Provisioning to Reliability page. |
---|
192 | Kevin Reid <kpreid@mac.com>**20090501191050 |
---|
193 | Ignore-this: 56dc1a5e659b70cc02dc4df7b5d518cd |
---|
194 | ] |
---|
195 | [docs: network-and-reliance-topology.svg: nicer server icons, mv out of the "specifications" subdir |
---|
196 | zooko@zooko.com**20090526165842 |
---|
197 | Ignore-this: 8f47ab3a0ab782c1f0d46e10bcaebe5b |
---|
198 | ] |
---|
199 | [docs: update network-and-reliance-topology.svg |
---|
200 | zooko@zooko.com**20090526163105 |
---|
201 | Ignore-this: 2b864b4ed8743d4a15dfbb7eff3fa561 |
---|
202 | ] |
---|
203 | [accounting-overview.txt: more edits |
---|
204 | warner@lothar.com**20090523190359] |
---|
205 | [accounting-overview.txt: small edits |
---|
206 | warner@lothar.com**20090523184011] |
---|
207 | [_auto_deps.py: require foolscap-0.4.1, which adds an important fix for py2.4 |
---|
208 | warner@lothar.com**20090523011103] |
---|
209 | [immutable/encode.py: tolerate immediate _remove_shareholder by copying the |
---|
210 | warner@lothar.com**20090522184424 |
---|
211 | landlord list before iterating over it. This can probably only happen in unit |
---|
212 | tests, but cleaning it up makes certain test failures easier to analyze. |
---|
213 | ] |
---|
214 | [switch to using RemoteException instead of 'wrapped' RemoteReferences. Should fix #653, the rref-EQ problem |
---|
215 | warner@lothar.com**20090522004632] |
---|
216 | [switch all foolscap imports to use foolscap.api or foolscap.logging |
---|
217 | warner@lothar.com**20090522003823] |
---|
218 | [_auto_deps.py: bump our foolscap dependency to 0.4.0, since I'm about to start using its new features |
---|
219 | warner@lothar.com**20090522002100] |
---|
220 | [test_runner.py: fix minor typo |
---|
221 | warner@lothar.com**20090520033620] |
---|
222 | [setup: fix bug (wrong import) in error message, as noticed by pyflakes |
---|
223 | zooko@zooko.com**20090519195642 |
---|
224 | Ignore-this: f1b9f8c00b46c1b5f2f20e5fc424f341 |
---|
225 | ] |
---|
226 | [setup: fix trivial bug in recent patch to test base64.py at startup |
---|
227 | zooko@zooko.com**20090519195129 |
---|
228 | Ignore-this: f6be038f74b53ca69e7109fe34adfbc |
---|
229 | ] |
---|
230 | [setup: make Tahoe exit at startup with a useful error message if the base64.py module is buggy (fixes part of #710) |
---|
231 | zooko@zooko.com**20090519194555 |
---|
232 | Ignore-this: aa4d398235ddca8d417d61c9688e154 |
---|
233 | ] |
---|
234 | [test_introducer.py: add a test for the python2.4.0/2.4.1 bug in base64.b32decode |
---|
235 | warner@lothar.com**20090519034101] |
---|
236 | [immutable WriteBucketProxy: use pipeline to speed up uploads by overlapping roundtrips, for #392 |
---|
237 | warner@lothar.com**20090518234422] |
---|
238 | [util/pipeline.py: new utility class to manage size-limited work pipelines, for #392 |
---|
239 | warner@lothar.com**20090518234326] |
---|
240 | [docs: add a diagram that I'm about to show to the Boulder Linux Users Group: network-and-reliance-topology.svg |
---|
241 | zooko@zooko.com**20090514232059 |
---|
242 | Ignore-this: 2420c0a7c254c9f0f2349d9130490d33 |
---|
243 | ] |
---|
244 | [tests: mark test_runner as coded in utf-8 instead of ascii |
---|
245 | zooko@zooko.com**20090507223151 |
---|
246 | Ignore-this: ccf1ba9e5a9b53602701a36f9fdb545e |
---|
247 | ] |
---|
248 | [tests: raise timeout on test_runner.RunNode.test_introducer from 120s to 240s, since it hit the 120s time-out on François Lenny-armv5tel |
---|
249 | zooko@zooko.com**20090507215012 |
---|
250 | Ignore-this: ba18fe6832ba255d4971e8f623ed7da5 |
---|
251 | ] |
---|
252 | [setup: fix comment in setup.py |
---|
253 | zooko@zooko.com**20090507215003 |
---|
254 | Ignore-this: c46ef664630d52733138ef7fbc551c1c |
---|
255 | ] |
---|
256 | [docs: how_to_make_a_tahoe_release.txt: a couple of small edits |
---|
257 | zooko@zooko.com**20090507214932 |
---|
258 | Ignore-this: ae92aa835ad369f4b9e6e49d681957a3 |
---|
259 | ] |
---|
260 | [.darcs-boringfile: also ignore .gitignore |
---|
261 | warner@allmydata.com**20090415210550 |
---|
262 | Ignore-this: d29db314a1e506f6240859559436b4c3 |
---|
263 | ] |
---|
264 | [.darcs-boringfile: ignore .git, I'm starting to play around with it |
---|
265 | warner@allmydata.com**20090415205929 |
---|
266 | Ignore-this: 89234453516483c9586cd6e1351e88b5 |
---|
267 | ] |
---|
268 | [fix quicktest: stop using setuptools, add misc/run-with-pythonpath.py, to make it run faster |
---|
269 | warner@lothar.com**20090414201400] |
---|
270 | [TAG allmydata-tahoe-1.4.1 |
---|
271 | zooko@zooko.com**20090414025636 |
---|
272 | Ignore-this: de78fc32364c83e9f4e26b5abcfdea4a |
---|
273 | ] |
---|
274 | [docs: inaugurate Tahoe-1.4.1, since I left out a handful of patches from the Tahoe-1.4.0 release |
---|
275 | zooko@zooko.com**20090414025430 |
---|
276 | Ignore-this: 12d5ff7dc842668bdf318c5539272089 |
---|
277 | ] |
---|
278 | [docs: add "darcs pull" to how_to_make_a_tahoe_release.txt, and renumber |
---|
279 | zooko@zooko.com**20090414024342 |
---|
280 | Ignore-this: d54d33e5f7e170eea12b6d6a16d0fc87 |
---|
281 | ] |
---|
282 | [TAG allmydata-tahoe-1.4.0 |
---|
283 | zooko@zooko.com**20090414022015 |
---|
284 | Ignore-this: 6e19652fa9775baf6e97fddf6c0313f2 |
---|
285 | ] |
---|
286 | [docs: edit relnotes.txt and promote Tahoe from filesystem to cloud storage thingie |
---|
287 | zooko@zooko.com**20090414021913 |
---|
288 | Ignore-this: 78cc79078c234d0467f6290dcae456b9 |
---|
289 | ] |
---|
290 | [docs: add note about pywin32 to install.html |
---|
291 | zooko@zooko.com**20090413185210 |
---|
292 | Ignore-this: d386abfccfdc1015b8f1216d95b4792f |
---|
293 | ] |
---|
294 | [trivial: fix comment |
---|
295 | zooko@zooko.com**20090413174138 |
---|
296 | Ignore-this: d45a9786c44793bc830dab1d8c9dd57c |
---|
297 | ] |
---|
298 | [docs: a few edits/updates about dirnodes |
---|
299 | zooko@zooko.com**20090413160837 |
---|
300 | Ignore-this: 107fc1796e6c7f5b68b7e2517cce516a |
---|
301 | ] |
---|
302 | [docs: change install.html to point to the 1.4.0 release zip file instead of 1.3.0 |
---|
303 | zooko@zooko.com**20090413160649 |
---|
304 | Ignore-this: ec6b177d6689894b9842a012da04e5dc |
---|
305 | ] |
---|
306 | [docs: edit install.html regarding versions of Python |
---|
307 | zooko@zooko.com**20090413160612 |
---|
308 | Ignore-this: 1de165ad7645be32ef671ece3fcae9ea |
---|
309 | ] |
---|
310 | [docs: some small edits to install.html |
---|
311 | zooko@zooko.com**20090413160414 |
---|
312 | Ignore-this: 1e7142ea444fef61c684c089407d675 |
---|
313 | ] |
---|
314 | [NEWS: mention that the new 'reliability' page requires numpy |
---|
315 | warner@lothar.com**20090413110446] |
---|
316 | [docs: update relnotes.txt, NEWS for Tahoe-1.4.0 release! |
---|
317 | zooko@zooko.com**20090413041405 |
---|
318 | Ignore-this: d2eacb26b359a020956ee14b63d95dc5 |
---|
319 | ] |
---|
320 | [tests: remove obsolete test (it tests functionality that is long gone) which occasionally ERRORs now that we have more metadata (since [20090411225205-92b7f-7adfb89cb4db4ac7d28427934dea3d2c108f6476]) |
---|
321 | zooko@zooko.com**20090413023621 |
---|
322 | Ignore-this: b9f1b1225015f59ffd7e0ee1633e4098 |
---|
323 | ] |
---|
324 | [trivial: remove trailing whitespace and unused import |
---|
325 | zooko@zooko.com**20090412021742 |
---|
326 | Ignore-this: e249172dd0ef51ee034819bc4c62cd9d |
---|
327 | ] |
---|
328 | [dirnode: add 'tahoe'/'linkcrtime' and 'tahoe'/'linkmotime' to take the place of what 'mtime'/'ctime' originally did, and make the 'tahoe' subdict be unwritable through the set_children API |
---|
329 | zooko@zooko.com**20090411225205 |
---|
330 | Ignore-this: b48b0812f353891c62f371bedb3e9880 |
---|
331 | Also add extensive documentation in docs/frontends/webapi.txt about the behaviors of these values. See ticket #628. |
---|
332 | ] |
---|
333 | [docs: webapi.txt edits to explain a few things better, adjust indentation, editing |
---|
334 | zooko@zooko.com**20090411224828 |
---|
335 | Ignore-this: 3a8a5559c7f0c8a585a4c0b5a2c80451 |
---|
336 | ] |
---|
337 | [rollback [20090226150237-b2345-1e916a746a7f4627b050f02f0e442fae5caf69d4] for 1.4.0 release; #645 |
---|
338 | zooko@zooko.com**20090411181906 |
---|
339 | Ignore-this: 15aa9ce6d1d49e9447f32e233d136bab |
---|
340 | ] |
---|
341 | [setup: update comments about what versions we require of our dependencies |
---|
342 | zooko@zooko.com**20090410174345 |
---|
343 | Ignore-this: 7ec194dea9d1a60aa584aebe4ee28064 |
---|
344 | ] |
---|
345 | [NEWS: finish formatting new items. Still needs proofreading and updating the release name+date |
---|
346 | warner@lothar.com**20090410015655] |
---|
347 | [#622: disable 'Repair' button on check-results page until we make it work correctly |
---|
348 | warner@lothar.com**20090409235959] |
---|
349 | [web: make sure that PUT /uri?mutable=false really means immutable, fixes #675 |
---|
350 | warner@lothar.com**20090408021340] |
---|
351 | [NEWS: format some (but not all) items |
---|
352 | warner@lothar.com**20090407211514] |
---|
353 | [wui: edit some of the human-readable parts of the wui such as button labels |
---|
354 | zooko@zooko.com**20090407185459 |
---|
355 | Ignore-this: 145722f4627271ea1d43107a0c7ce0e1 |
---|
356 | (The word "parent" suggests that you can go up a directory hierarchy -- perhaps that word is vestigial.) |
---|
357 | ] |
---|
358 | [wui: fix bug in which empty directory is marked as "unreadable", add test, remove exclamation point |
---|
359 | zooko@zooko.com**20090407182834 |
---|
360 | Ignore-this: 2623a7ecd9c7c46b3c984fbaddf43ad0 |
---|
361 | ] |
---|
362 | [NEWS: add unformatted list of code changes since previous release |
---|
363 | warner@lothar.com**20090407021155] |
---|
364 | [docs: modify how-to-relase notes a tiny bit |
---|
365 | warner@lothar.com**20090407021135] |
---|
366 | [hashtree.py: another micro-optimization, expand on a comment |
---|
367 | warner@lothar.com**20090404043527] |
---|
368 | [hashtree: fix tests of depth_of |
---|
369 | zooko@zooko.com**20090403235614 |
---|
370 | Ignore-this: 70c96e407fe732fe75335c15df5f8200 |
---|
371 | ] |
---|
372 | [trivial: source code metadata |
---|
373 | zooko@zooko.com**20090403233315 |
---|
374 | Ignore-this: 23858d0320b9b7ba0e6d2fe4adeccea8 |
---|
375 | ] |
---|
376 | [trivial: whitespace |
---|
377 | zooko@zooko.com**20090403233302 |
---|
378 | Ignore-this: fed1c44b08c699cfcaf9d2d50353ec10 |
---|
379 | ] |
---|
380 | [hashtree: a couple of tiny improvements |
---|
381 | zooko@zooko.com**20090403233037 |
---|
382 | Ignore-this: a74764aa40b36f7056ac4321af628714 |
---|
383 | * calculate depth-first with math instead of traversing the actual tree |
---|
384 | * don't mark a node with a red dot if you instead compare it with an extant hash value (tiny optimization) |
---|
385 | * edit a comment about checking the root node |
---|
386 | ] |
---|
387 | [leases, time_format: modify time stamping in lease description |
---|
388 | zooko@zooko.com**20090403225904 |
---|
389 | Ignore-this: c20b18d117a8199cdec08d8b5991789e |
---|
390 | * emit lease expiry date in ISO-8601'ish format as well as Brian's format |
---|
391 | * rename iso_utc_time_to_localseconds() to iso_utc_time_to_seconds() |
---|
392 | * add iso_utc_date() |
---|
393 | * simplify the body of iso_utc_time_to_seconds() |
---|
394 | |
---|
395 | ] |
---|
396 | [hashtree: fix O(N**2) behavior, to improve fatal alacrity problems in a 10GB file (#670). Also improve docstring. |
---|
397 | warner@lothar.com**20090331202127 |
---|
398 | Ignore-this: a04f72ed2b783fc880932fc5c482182b |
---|
399 | ] |
---|
400 | [docs: setup: Norm Hardy suggested that it would be easier if users realized that they already had Python (especially true for Mac users) |
---|
401 | zooko@zooko.com**20090325035459 |
---|
402 | Ignore-this: e1bb76a1be4d6d541090d8d9e7e73db9 |
---|
403 | ] |
---|
404 | [expirer: include crawler progress in the JSON status output |
---|
405 | warner@allmydata.com**20090324205137 |
---|
406 | Ignore-this: f65ccc0a57ed7c5d9565131350d87d2d |
---|
407 | ] |
---|
408 | [docs/proposed: new Accounting overview, discuss in #666 |
---|
409 | warner@allmydata.com**20090324015752 |
---|
410 | Ignore-this: 7379396536e85194b1c1bec21288adc7 |
---|
411 | ] |
---|
412 | [docs/proposed: move old accounting docs out of the way |
---|
413 | warner@allmydata.com**20090324015457 |
---|
414 | Ignore-this: 196fe85ef3592f7ef8e58a101eed0494 |
---|
415 | ] |
---|
416 | [move GC docs out of proposed/, since it's all implemented now. Add reference to configuration.txt . Add expire.*= suggestions to tahoe.cfg . |
---|
417 | warner@allmydata.com**20090323230820 |
---|
418 | Ignore-this: ce0ec977f49c4a3642cf3a7ea7789dc4 |
---|
419 | ] |
---|
420 | [storage: use constant-time comparison for write-enablers and lease-secrets |
---|
421 | warner@lothar.com**20090323032128 |
---|
422 | Ignore-this: efbbb15242b3f306c32498aae7fd75d |
---|
423 | ] |
---|
424 | [hashutil: add constant-time comparison function, to avoid timing attacks when python's short-circuiting data-dependent == operator is used to, say, check a write-enabler |
---|
425 | warner@lothar.com**20090323032055 |
---|
426 | Ignore-this: c5c1f5e529ab1b352c949f3e0d9abf20 |
---|
427 | ] |
---|
428 | [WUI: fix display of empty directories, it threw an exception before |
---|
429 | warner@allmydata.com**20090320235809 |
---|
430 | Ignore-this: e598bb806d75411d202ba90fc251ad2b |
---|
431 | ] |
---|
432 | [storage webstatus: insert spaces when we're configured to expire multiple sharetypes |
---|
433 | warner@allmydata.com**20090320224450 |
---|
434 | Ignore-this: 18f44396384c8598d984eaa11dc92cf7 |
---|
435 | ] |
---|
436 | [expirer: tolerate empty buckets, refactor bucketsize-counting code a bit, don't increment -mutable/-immutable counters unless we actually know the sharetype |
---|
437 | warner@allmydata.com**20090320191816 |
---|
438 | Ignore-this: 16827fe12b874a0205b0a7fdb6b7f960 |
---|
439 | ] |
---|
440 | [storage: improve wording of status message |
---|
441 | warner@allmydata.com**20090319184837 |
---|
442 | Ignore-this: 66684623d50c89fa02915665dbbfec98 |
---|
443 | ] |
---|
444 | [parse_date: insist that it returns an int |
---|
445 | warner@allmydata.com**20090319184443 |
---|
446 | Ignore-this: a1f5ae0c16a151d218c06fc4411f03c1 |
---|
447 | ] |
---|
448 | [storage status: report expiration-cutoff-date like 19-Mar-2009 (as opposed to the tahoe.cfg input format of 2009-03-19), for redundancy: someone who gets the month and day switched will have a better chance to spot the problem in the storage-status output if it's in a different format |
---|
449 | warner@allmydata.com**20090319180756 |
---|
450 | Ignore-this: df2c3778260c6389d32f4b47b004ab35 |
---|
451 | ] |
---|
452 | [expirer: clean up constructor args, add tahoe.cfg controls, use cutoff_date instead of date_cutoff |
---|
453 | warner@allmydata.com**20090319010009 |
---|
454 | Ignore-this: 2b6aaa6d5e6ff9fd417f32978b443fd2 |
---|
455 | ] |
---|
456 | [util/time_format: new routine to parse dates like 2009-03-18, switch expirer to use it. I'd prefer to use 18-Mar-2009, but it is surprisingly non-trivial to build a parser that will take UTC dates instead of local dates |
---|
457 | warner@allmydata.com**20090319005814 |
---|
458 | Ignore-this: 4f08b301c780a78084fa02a09b5dda3 |
---|
459 | ] |
---|
460 | [expirer: change setup, config options, in preparation for adding tahoe.cfg controls |
---|
461 | warner@allmydata.com**20090319002138 |
---|
462 | Ignore-this: b23a53e97f2a9fb7a005e9fe40e83fac |
---|
463 | ] |
---|
464 | [expirer: track mutable-vs-immutable sharecounts and sizes, report them on the web status page for comparison |
---|
465 | warner@allmydata.com**20090318202504 |
---|
466 | Ignore-this: 87e809bf5dedef3f0bc8f4a7b90e42d2 |
---|
467 | ] |
---|
468 | [add utility function to parse durations, for lease-expiration config |
---|
469 | warner@lothar.com**20090317070117 |
---|
470 | Ignore-this: 2f4fa4352c887b4767969f0ea7931644 |
---|
471 | ] |
---|
472 | [expirer: add mode to expire only-mutable or only-immutable shares |
---|
473 | warner@lothar.com**20090317065118 |
---|
474 | Ignore-this: b0b25427e3b1516bdfe293528b8e4a4e |
---|
475 | ] |
---|
476 | [tahoe_ls.py: add comment about error cases to improve |
---|
477 | warner@lothar.com**20090317051206 |
---|
478 | Ignore-this: 7c678b92a55b2f7c6f0d96fb6ece74ed |
---|
479 | ] |
---|
480 | [GC: add date-cutoff -based expiration, add proposed docs |
---|
481 | warner@lothar.com**20090317051041 |
---|
482 | Ignore-this: a5c0ecbcc2666eb04f2daa67331d1948 |
---|
483 | ] |
---|
484 | [test_deepcheck: remove the 10s timeout: our dapper buildslave requires 30s, and the reduced timeout was only there because this tests fails by timeout rather than explicitly |
---|
485 | warner@lothar.com**20090316005134 |
---|
486 | Ignore-this: 4ce081283c26719be513b5ce8381a81a |
---|
487 | ] |
---|
488 | [tahoe cp -r: add --caps-only flag, to write filecaps into local files instead of actual file contents. Used only for debugging and as a quick tree-comparison tool. |
---|
489 | warner@lothar.com**20090315231958 |
---|
490 | Ignore-this: 8ecdf2b08601ae9e9fec5885bf640262 |
---|
491 | ] |
---|
492 | [dirnode deep_traverse: insert a turn break (fireEventually) at least once every 100 files, otherwise a CHK followed by more than 158 LITs can overflow the stack, sort of like #237. |
---|
493 | warner@allmydata.com**20090313233135 |
---|
494 | Ignore-this: 39b78faa947ed9461f2d120f6843e59f |
---|
495 | ] |
---|
496 | [consolidate: remove pointless 'else' after for loop |
---|
497 | warner@allmydata.com**20090313082751 |
---|
498 | Ignore-this: 517f41316f7ae40b92b9eef8269a4b69 |
---|
499 | ] |
---|
500 | [consolidate: add eta, flush stdout |
---|
501 | warner@allmydata.com**20090313082451 |
---|
502 | Ignore-this: 845f63adccc32557c6864ae6120ba836 |
---|
503 | ] |
---|
504 | [consolidate: tolerate unicode dirnames |
---|
505 | warner@allmydata.com**20090313065402 |
---|
506 | Ignore-this: 7e65703ed3d12d4bd5ec14b693e5f61f |
---|
507 | ] |
---|
508 | [dirnode.py: when doing deep-traverse, walk each directory in alphabetical order, to make things like 'manifest' more predictable |
---|
509 | warner@allmydata.com**20090313065046 |
---|
510 | Ignore-this: 9a80055a93a6b11853d4e8202bacec14 |
---|
511 | ] |
---|
512 | [consolidator: add progress to scan-old-directory passes |
---|
513 | warner@allmydata.com**20090313054728 |
---|
514 | Ignore-this: adc67a34f4f19fd58c5bc76301b3df36 |
---|
515 | ] |
---|
516 | [consolidator: fix cycle detection to not trigger on merely shared directories, add snapshot counter to progress |
---|
517 | warner@allmydata.com**20090313042229 |
---|
518 | Ignore-this: eba2cf9f1b1364b8e4c5ae4fa030a99f |
---|
519 | ] |
---|
520 | [consolidator: re-use more directories, add total directories seen-vs-used counts |
---|
521 | warner@allmydata.com**20090313034801 |
---|
522 | Ignore-this: 6e743d2940a9fe129cee31008c894d70 |
---|
523 | ] |
---|
524 | [tahoe_backup.py: tolerate more time formats |
---|
525 | warner@allmydata.com**20090313011600 |
---|
526 | Ignore-this: ca74f56f0dce7d19810c5a7a75bc623c |
---|
527 | ] |
---|
528 | [consolidator: add more verbose traversal of directories |
---|
529 | warner@allmydata.com**20090312232900 |
---|
530 | Ignore-this: 8ff0e17c6174566832a566a111032db4 |
---|
531 | ] |
---|
532 | [consolidate: create multiple numbered backups of the original Archives directory, not just the first time |
---|
533 | warner@allmydata.com**20090312230427 |
---|
534 | Ignore-this: e4985f76969b584d099b050781aa561c |
---|
535 | ] |
---|
536 | [add 'tahoe debug consolidate' command, to merge directories created by repeated 'tahoe cp -r' or the allmydata win32 backup tool, into the form that would have been created by 'tahoe backup'. |
---|
537 | warner@allmydata.com**20090312205606 |
---|
538 | Ignore-this: 66569ca2190aa7b0f9199bcf09dcb27e |
---|
539 | ] |
---|
540 | [tahoe_cp.py: return 0 for success, instead of None |
---|
541 | warner@allmydata.com**20090312205345 |
---|
542 | Ignore-this: 808f6d8617f8c4e7fde455e6c7639fab |
---|
543 | ] |
---|
544 | [setup: specify in the debian/control files that tahoe is compatible with Python 2.6 |
---|
545 | zooko@zooko.com**20090311225902 |
---|
546 | Ignore-this: d0793013e4c868d92793d932ef92a62d |
---|
547 | ] |
---|
548 | [setup: update the debian/copyright text to reflect the current licences |
---|
549 | zooko@zooko.com**20090311152952 |
---|
550 | Ignore-this: 806a95b1b79d6bb20507db5c7201af45 |
---|
551 | ] |
---|
552 | [expirer: fix prediction math, thanks to Zandr for the catch |
---|
553 | warner@allmydata.com**20090309204217 |
---|
554 | Ignore-this: e20f784483ea1a15e35627fe95506272 |
---|
555 | ] |
---|
556 | [storage.expirer: oops, fix upgrade-handler code |
---|
557 | warner@lothar.com**20090309035516 |
---|
558 | Ignore-this: af8bc0ea1c7f305b33c06f4a9bf58de3 |
---|
559 | ] |
---|
560 | [storage.expirer: handle upgrades better |
---|
561 | warner@lothar.com**20090309034220 |
---|
562 | Ignore-this: dd654305b94bc3209426a3e008d57363 |
---|
563 | ] |
---|
564 | [storage.expirer: exercise the last missing line of webstatus code |
---|
565 | warner@lothar.com**20090309033828 |
---|
566 | Ignore-this: fc4aa34734cae32eec1db623ca0b145b |
---|
567 | ] |
---|
568 | [expirer: tolerate corrupt shares, add them to the state and history for future examination |
---|
569 | warner@lothar.com**20090309030840 |
---|
570 | Ignore-this: 5ae7e68471ed700cc68beb408e0f303 |
---|
571 | ] |
---|
572 | [storage/immutable: raise a specific error upon seeing a bad version number, instead of using assert. Also wrap to 80cols. |
---|
573 | warner@lothar.com**20090309030732 |
---|
574 | Ignore-this: 5331d9680ffceff029fbbbcdece7f282 |
---|
575 | ] |
---|
576 | [storage: add test coverage for BucketReader.__repr__ |
---|
577 | warner@lothar.com**20090309030527 |
---|
578 | Ignore-this: 60ce4e8c5200cc9885a3057f914e78b4 |
---|
579 | ] |
---|
580 | [storage/mutable: raise a specific error upon seeing bad magic, instead of using assert |
---|
581 | warner@lothar.com**20090309020201 |
---|
582 | Ignore-this: 8daa77362902f5d6ef793e9602a1383b |
---|
583 | ] |
---|
584 | [nodeadmin: node stops itself if a hotline file hasn't been touched in 120 seconds now, instead of in 60 seconds |
---|
585 | zooko@zooko.com**20090308025039 |
---|
586 | Ignore-this: a9cfc605d3fcad912bd2d0b35d5143ec |
---|
587 | A test failed on draco (MacPPC) because it took 67.1 seconds to get around to running the test, and the node had already stopped itself when the hotline file was 60 seconds old. |
---|
588 | ] |
---|
589 | [expirer: make web display a bit more consistent |
---|
590 | warner@lothar.com**20090307221442 |
---|
591 | Ignore-this: 7fec9d9bffc0bddeb51c1baa8e7ea020 |
---|
592 | ] |
---|
593 | [web/storage.py: tolerate unknown-future displays, I'm not sure why LeaseCrawler.test_unpredictable_future didn't catch this |
---|
594 | warner@lothar.com**20090307220243 |
---|
595 | Ignore-this: 3d4e5baa8cc6d5d26edcea29fda8593d |
---|
596 | ] |
---|
597 | [tahoe_cp.py: improve error reporting slightly: don't json-interpret HTTP errors, pass through tahoe webapi error messages |
---|
598 | warner@lothar.com**20090307114051 |
---|
599 | Ignore-this: a8beccb67adb082a92509d439b27d68e |
---|
600 | ] |
---|
601 | [test_cli.py: assert that 'ls' on an unrecoverable file now gives a better error message |
---|
602 | warner@lothar.com**20090307110815 |
---|
603 | Ignore-this: 18e9758e4d0ca7faeaf5bd481c2d72ff |
---|
604 | ] |
---|
605 | [test_web: test behavior of broken-dirnode GET, both html and json |
---|
606 | warner@lothar.com**20090307105707 |
---|
607 | Ignore-this: c0e5b45eee28959f899efa1bd189d6bd |
---|
608 | ] |
---|
609 | [web: when a dirnode can't be read, emit a regular HTML page but with the child-table and upload-forms replaced with an apologetic message. Make sure to include the 'get info' links so the user can do a filecheck |
---|
610 | warner@lothar.com**20090307105601 |
---|
611 | Ignore-this: f949d6bd58c0c2fd60fd5fa730115f3f |
---|
612 | ] |
---|
613 | [web/common: split out exception-to-explanation+code mapping to a separate humanize_failure() function, so it can be used by other code. Add explanation for mutable UnrecoverableFileError. |
---|
614 | warner@lothar.com**20090307105408 |
---|
615 | Ignore-this: 92f326804ba73bb446c5df5992b7d72e |
---|
616 | ] |
---|
617 | [test_cli: use explicit (and stable) testdirs, instead of using self.mktemp |
---|
618 | warner@lothar.com**20090307090428 |
---|
619 | Ignore-this: 7c58d159e4f33d01635c3445d9e591f9 |
---|
620 | ] |
---|
621 | [test_storage: solaris doesn't appear to give the same block count as other platforms, so don't assert as much about 'diskbytes' recovered |
---|
622 | warner@lothar.com**20090307084518 |
---|
623 | Ignore-this: 55b35c094ce78c50c8ede42062c5ea13 |
---|
624 | ] |
---|
625 | [tahoe_cp.py: don't be verbose unless --verbose is passed: default is one line of success |
---|
626 | warner@lothar.com**20090307084421 |
---|
627 | Ignore-this: f75bb818081e0c2993378154775a69d1 |
---|
628 | ] |
---|
629 | [setup.cfg: use allmydata.org as a mirror for some of our necessary dependencies |
---|
630 | warner@allmydata.com**20090307045753 |
---|
631 | Ignore-this: ce174de4ad2dd96f184eadf4d62ea779 |
---|
632 | ] |
---|
633 | [storage: add a lease-checker-and-expirer crawler, plus web status page. |
---|
634 | warner@allmydata.com**20090307044517 |
---|
635 | Ignore-this: 4355224f89b959c6f1a256a7e6c88c3b |
---|
636 | |
---|
637 | This walks slowly through all shares, examining their leases, deciding which |
---|
638 | are still valid and which have expired. Once enabled, it will then remove the |
---|
639 | expired leases, and delete shares which no longer have any valid leases. Note |
---|
640 | that there is not yet a tahoe.cfg option to enable lease-deletion: the |
---|
641 | current code is read-only. A subsequent patch will add a tahoe.cfg knob to |
---|
642 | control this, as well as docs. Some other minor items included in this patch: |
---|
643 | |
---|
644 | tahoe debug dump-share has a new --leases-only flag |
---|
645 | storage sharefile/leaseinfo code is cleaned up |
---|
646 | storage web status page (/storage) has more info, more tests coverage |
---|
647 | space-left measurement on OS-X should be more accurate (it was off by 2048x) |
---|
648 | (use stat .f_frsize instead of f_bsize) |
---|
649 | ] |
---|
650 | [setup: comment-out the use of the directory full of dependency packages on the test grid -- the test grid is too unreliable! :-( |
---|
651 | zooko@zooko.com**20090307044332 |
---|
652 | Ignore-this: c09f2e5f0b383b4227df4b07c267cb05 |
---|
653 | ] |
---|
654 | [setup: create a "make deb-lenny-head" target |
---|
655 | zooko@zooko.com**20090306191057 |
---|
656 | Ignore-this: 4b2ff187a3d08dcfe9318980ca92f097 |
---|
657 | I made this patch by copying [20090305220021-92b7f-89d987c7d05306b5cb03a64f2956a652c10a7296] and changing the name from "intrepid" to "lenny". I haven't tested it. |
---|
658 | ] |
---|
659 | [trivial: remove unused import detected by pyflakes, and remove trailing whitespace |
---|
660 | zooko@zooko.com**20090305223204 |
---|
661 | Ignore-this: 991001a50da1a357a519c3cb880d7ee1 |
---|
662 | ] |
---|
663 | [setup: enable build of .debs for Ubuntu Intrepid, thanks to DarKNesS_WolF |
---|
664 | zooko@zooko.com**20090305220021 |
---|
665 | Ignore-this: 88dbb3f72c2446b7734ac437189b67df |
---|
666 | ] |
---|
667 | [trivial: use more specific function for ascii-encoding storage index |
---|
668 | zooko@zooko.com**20090222175751 |
---|
669 | Ignore-this: c1a78a71cf04d7dbd80a71106f9b21a1 |
---|
670 | ] |
---|
671 | [doc: update how_to_make_a_tahoe_release.txt |
---|
672 | zooko@zooko.com**20090222175739 |
---|
673 | Ignore-this: 6a2e1592741b362bc170167a9cadc0b |
---|
674 | ] |
---|
675 | [test_cli: validate non-HTML error response of 'tahoe get' on an unrecoverable file |
---|
676 | warner@lothar.com**20090304041146] |
---|
677 | [web: full patch for HTML-vs-plaintext traceback renderings, improve test coverage of exception rendering |
---|
678 | warner@lothar.com**20090304035630] |
---|
679 | [web/common.py: use 'Accept:' header to control HTML-vs-text/plain traceback renderings |
---|
680 | warner@lothar.com**20090304035457] |
---|
681 | [test/common: rearrange shouldHTTPError |
---|
682 | warner@lothar.com**20090304014059] |
---|
683 | [web: move plural() to common.py |
---|
684 | warner@lothar.com**20090304014019] |
---|
685 | [add more information to NotEnoughSharesError, split out new exceptions for no-servers and no-source-of-ueb-hash |
---|
686 | warner@lothar.com**20090304013715] |
---|
687 | [test_web: move shouldHTTPError into common.WebErrorMixin |
---|
688 | warner@lothar.com**20090303225620] |
---|
689 | [test_web: clean up shouldHTTPError methods |
---|
690 | warner@lothar.com**20090303224604] |
---|
691 | [immutable checker add-lease: catch remote IndexError here too |
---|
692 | warner@allmydata.com**20090227071724 |
---|
693 | Ignore-this: 94ee6064ce26409381c6451cd50fdade |
---|
694 | ] |
---|
695 | [servermap add-lease: fix the code that's supposed to catch remote IndexErrors, I forgot that they present as ServerFailures instead. This should stop the deluge of Incidents that occur when you do add-lease against 1.3.0 servers |
---|
696 | warner@allmydata.com**20090227070426 |
---|
697 | Ignore-this: 3d7bc87d9587b51d44b27317d9eded23 |
---|
698 | ] |
---|
699 | [rrefutil: add check_remote utility function |
---|
700 | warner@allmydata.com**20090227065957 |
---|
701 | Ignore-this: d859d0fae87b7e84ad3c2893350ed519 |
---|
702 | ] |
---|
703 | [rrefutil: add trap_remote utility and friends |
---|
704 | warner@allmydata.com**20090227065524 |
---|
705 | Ignore-this: a594050cdd9bcca073d8029819dbc35 |
---|
706 | ] |
---|
707 | [web: improve layout of storage status with a table |
---|
708 | warner@allmydata.com**20090227015838 |
---|
709 | Ignore-this: 5c12f5e296ad1cf224f85e307813eb09 |
---|
710 | ] |
---|
711 | [crawler: add ETA to get_progress() |
---|
712 | warner@allmydata.com**20090227014248 |
---|
713 | Ignore-this: 27ae76c0530b83323209be70df3d8a4b |
---|
714 | ] |
---|
715 | [Fix for bug #645, correct path handling logic so that it works from sshfs |
---|
716 | Alberto Berti <alberto@metapensiero.it>**20090226150237 |
---|
717 | Ignore-this: e9c1b2d48ebf4ba68100d76e54154a78 |
---|
718 | ] |
---|
719 | [wui: s/Provisioning/Reliability/ ; suggested by Terrell |
---|
720 | zooko@zooko.com**20090226030904 |
---|
721 | Ignore-this: f9559702e760dc3c57e2fc36f087d91e |
---|
722 | ] |
---|
723 | [startstop_node.py: when restarting, tolerate a stale pid too |
---|
724 | warner@allmydata.com**20090226015245 |
---|
725 | Ignore-this: 59197d3f400417be64fa0f91a64fae12 |
---|
726 | ] |
---|
727 | [web: fix the ERROR: line to work the same in python2.4 and 2.5 |
---|
728 | warner@lothar.com**20090225074621] |
---|
729 | [test_cli/test_web: fix spurious test failure on solaris (maybe python2.4?) due to variations in the way that exceptions are stringified |
---|
730 | warner@allmydata.com**20090225060128 |
---|
731 | Ignore-this: 829fb7d67fd199babdde1443b64a5381 |
---|
732 | ] |
---|
733 | [CLI: modify 'tahoe manifest' and 'tahoe deep-check' to report ERROR: properly. For #590. |
---|
734 | warner@allmydata.com**20090225054415 |
---|
735 | Ignore-this: 99162f894fdd24112a869e14848c3dea |
---|
736 | ] |
---|
737 | [webapi: modify streaming deep-manifest/deep-checker to emit an ERROR: line if they encounter an unrecoverable+untraversable directory. For #590. |
---|
738 | warner@allmydata.com**20090225051335 |
---|
739 | Ignore-this: e6bc49368fb0e7ada7cff477fd63ffe6 |
---|
740 | ] |
---|
741 | [scripts/common: fix alias handling on windows again, emit slightly nicer error message in response to an unknown alias |
---|
742 | warner@allmydata.com**20090225042136 |
---|
743 | Ignore-this: 76df800d131aed6701b5c7408105b134 |
---|
744 | ] |
---|
745 | [#165: make 'tahoe restart --force' the default behavior: warn but do not stop if restart is used on something that wasn't a running node, and always try to start it afterwards. This is particularly important for #315 (restart -m), because otherwise a single not-already-running node will prevent all nodes from being restarted, resulting in longer downtime than necessary |
---|
746 | warner@allmydata.com**20090225034213 |
---|
747 | Ignore-this: 26d8b0eea0279ca793faf23c5e948d90 |
---|
748 | ] |
---|
749 | [test_deepcheck: switch deep-check tests to use no-network too. This cuts the runtime down by about 50% |
---|
750 | warner@allmydata.com**20090225030457 |
---|
751 | Ignore-this: b3a98ed18c5752c9016c047e95d42b |
---|
752 | ] |
---|
753 | [test_deepcheck: convert MutableChecker to no-network GridTest |
---|
754 | warner@allmydata.com**20090225020010 |
---|
755 | Ignore-this: eccba7fda129330b642886271a61a573 |
---|
756 | ] |
---|
757 | [tests/no_network: move GET into the GridTestMixin class |
---|
758 | warner@allmydata.com**20090225003300 |
---|
759 | Ignore-this: 7779ad38c2d687ae328ba3cb6164a7a4 |
---|
760 | ] |
---|
761 | [common_web.py: oops, add .fields to the other FakeRequest |
---|
762 | warner@allmydata.com**20090225000459 |
---|
763 | Ignore-this: 7144269b5e083553ee2c3e7afea00604 |
---|
764 | ] |
---|
765 | [test_cli: exercise the recent tolerate-'c:\dir\file.txt' fix in scripts/common, recorded in a separate match to make it easier to merge the fix to prod |
---|
766 | warner@allmydata.com**20090224235620 |
---|
767 | Ignore-this: 2cae196dd4ccb578b2abae085376e0d7 |
---|
768 | ] |
---|
769 | [scripts/common: on windows, tolerate paths like 'c:\dir\file.txt', by treating single-letter aliases on windows/cygwin as non-aliases |
---|
770 | warner@allmydata.com**20090224235522 |
---|
771 | Ignore-this: 96d37644b7f81ac768ff4a1d1915eb46 |
---|
772 | ] |
---|
773 | [test/common_web.py: add a .fields attribute to our FakeRequest, since we support versions of Nevow that are old enough to not do it themselves |
---|
774 | warner@allmydata.com**20090224232050 |
---|
775 | Ignore-this: 239aaed746128e54e886762782541a1f |
---|
776 | ] |
---|
777 | [Two small fixes on documentation for cli backup command. |
---|
778 | Alberto Berti <alberto@metapensiero.it>**20090224223634 |
---|
779 | Ignore-this: 5634a6dadad6e4e43a112de7fe5c74c |
---|
780 | ] |
---|
781 | [test_web: add (disabled) test to see what happens when deep-check encounters an unrecoverable directory. We still need code changes to improve this behavior. |
---|
782 | warner@lothar.com**20090224214017 |
---|
783 | Ignore-this: e839f1b0ec40f53fedcd809c2a30d5f9 |
---|
784 | ] |
---|
785 | [Add elapsed timestamp to cli backup command final summary. |
---|
786 | Alberto Berti <alberto@metapensiero.it>**20090224171425 |
---|
787 | Ignore-this: 9a042d11f95ee9f6858a5096d513c0bc |
---|
788 | ] |
---|
789 | [Added documentation for '--exclude' and friends cli backup command. |
---|
790 | Alberto Berti <alberto@metapensiero.it>**20090224153049 |
---|
791 | Ignore-this: bbc791fa56e38535bb82cc3077ffde90 |
---|
792 | ] |
---|
793 | [test_repairer: change to use faster no_network.GridTestMixin, split Verifier tests into separate cases, refactor judgement funcs into shared methods |
---|
794 | warner@lothar.com**20090224041506 |
---|
795 | Ignore-this: 584ce72d6276da5edc00562793d4ee53 |
---|
796 | ] |
---|
797 | [immutable/checker.py: trap ShareVersionIncompatible too. Also, use f.check |
---|
798 | warner@lothar.com**20090224041405 |
---|
799 | Ignore-this: b667e8d3192116293babcacdeed42898 |
---|
800 | instead of examining the value returned by f.trap, because the latter appears |
---|
801 | to squash exception types down into their base classes (i.e. since |
---|
802 | ShareVersionIncompatible is a subclass of LayoutInvalid, |
---|
803 | f.trap(Failure(ShareVersionIncompatible)) == LayoutInvalid). |
---|
804 | |
---|
805 | All this resulted in 'incompatible' shares being misclassified as 'corrupt'. |
---|
806 | ] |
---|
807 | [immutable/layout.py: wrap to 80 cols, no functional changes |
---|
808 | warner@lothar.com**20090224005837 |
---|
809 | Ignore-this: 40019480180ec34141506a28d7711608 |
---|
810 | ] |
---|
811 | [test_repairer: change Repairer to use much-faster no_network.GridTestMixin. As a side-effect, fix what I think was a bug: some of the assert-minimal-effort-expended checks were mixing write counts and allocate counts |
---|
812 | warner@lothar.com**20090223234227 |
---|
813 | Ignore-this: d58bd0a909f9939775730cda4a858cae |
---|
814 | ] |
---|
815 | [test/no_network.py: add a basic stats provider |
---|
816 | warner@lothar.com**20090223233937 |
---|
817 | Ignore-this: c9f3cc4eed99cfc36f68938ceff4162c |
---|
818 | ] |
---|
819 | [tests: stop using setUpClass/tearDownClass, since they've been deprecated in Twisted-8.2.0 |
---|
820 | warner@lothar.com**20090223204312 |
---|
821 | Ignore-this: 24c6592141cf64103530c024f93a5b88 |
---|
822 | ] |
---|
823 | [test_checker: improve test coverage for checker results |
---|
824 | warner@lothar.com**20090223201943 |
---|
825 | Ignore-this: 83e173602f0f4c811a7a9893d85385df |
---|
826 | ] |
---|
827 | [Fixed tests again so they will pass on windows. |
---|
828 | Alberto Berti <alberto@metapensiero.it>**20090223003502 |
---|
829 | Ignore-this: 80d5074e7153642a2fa2a77958bfb50d |
---|
830 | ] |
---|
831 | [misc/*: remove RuntimeError too |
---|
832 | warner@lothar.com**20090222233401 |
---|
833 | Ignore-this: b76f8a184f75bb28eb9d8002f957936a |
---|
834 | ] |
---|
835 | [scripts: stop using RuntimeError, for #639 |
---|
836 | warner@lothar.com**20090222233106 |
---|
837 | Ignore-this: 686a424442670fffbd4d1816c284a601 |
---|
838 | ] |
---|
839 | [mutable/publish: stop using RuntimeError, for #639 |
---|
840 | warner@lothar.com**20090222233056 |
---|
841 | Ignore-this: 2a80a661c7850d97357caddad48c6e9d |
---|
842 | ] |
---|
843 | [remove more RuntimeError from unit tests, for #639 |
---|
844 | warner@lothar.com**20090222232855 |
---|
845 | Ignore-this: 1a1c3e1457f3f29ba7101fe406ee5f43 |
---|
846 | ] |
---|
847 | [stop using RuntimeError in unit tests, for #639 |
---|
848 | warner@lothar.com**20090222232722 |
---|
849 | Ignore-this: 475ce0c0dcd7a1f5ed83ef460312efea |
---|
850 | ] |
---|
851 | [ftpd/sftpd: stop using RuntimeError, for #639 |
---|
852 | warner@lothar.com**20090222232426 |
---|
853 | Ignore-this: 97001362c4ba9e94b2e254e229b79987 |
---|
854 | ] |
---|
855 | [Added tests for the cse when listdir is an iterator |
---|
856 | Alberto Berti <alberto@metapensiero.it>**20090222224356 |
---|
857 | Ignore-this: 218fb2aba02c28b4b1e5324bdb5adeaa |
---|
858 | ] |
---|
859 | [Fixed tests so that they pass also on buildbots. |
---|
860 | Alberto Berti <alberto@metapensiero.it>**20090222224311 |
---|
861 | Ignore-this: fcb91cd6acf028382411d23d380a4576 |
---|
862 | ] |
---|
863 | [Use failUnlessEqual instead of failUnless(a == b) |
---|
864 | Alberto Berti <alberto@metapensiero.it>**20090222224214 |
---|
865 | Ignore-this: 8f9144632e3ac9acb4726fb48a083bf4 |
---|
866 | ] |
---|
867 | [Better implementation of filtering algorithm. |
---|
868 | Alberto Berti <alberto@metapensiero.it>**20090222224049 |
---|
869 | Ignore-this: 67a8bd2f99bcc87ca2443bef13370a87 |
---|
870 | ] |
---|
871 | [Removed '.hgrags' from vcs excludes |
---|
872 | Alberto Berti <alberto@metapensiero.it>**20090222223946 |
---|
873 | Ignore-this: 3e94c22fc9d85f380ee11fb8bdb4d1e9 |
---|
874 | ] |
---|
875 | [docs: CREDITS to Alberto Berti |
---|
876 | zooko@zooko.com**20090222193314 |
---|
877 | Ignore-this: 74d370ada3234cce9e58aec15d739f71 |
---|
878 | ] |
---|
879 | [Added tests for the --exclude* options of backup command. |
---|
880 | Alberto Berti <alberto@metapensiero.it>**20090222165106 |
---|
881 | Ignore-this: f1b931cf2e7929ce47b737c022bca707 |
---|
882 | ] |
---|
883 | [Added --exclude, --exclude-from and --exclude-vcs options to backup command. |
---|
884 | Alberto Berti <alberto@metapensiero.it>**20090222170829 |
---|
885 | Ignore-this: 4912890229cd54a2f61f14f06bc4afcc |
---|
886 | |
---|
887 | It is still impossible to specify absolute exclusion path, only |
---|
888 | relative. I must check with tar or rsync how they allow them to be |
---|
889 | specified. |
---|
890 | ] |
---|
891 | [Raise a more explanatory exception for errors encountered during backup processing. |
---|
892 | Alberto Berti <alberto@metapensiero.it>**20090222170252 |
---|
893 | Ignore-this: f6b8ffe2a903ba07a2c1c59130dac1e4 |
---|
894 | ] |
---|
895 | [Added tests for the fixed alias related command's synopsis |
---|
896 | Alberto Berti <alberto@metapensiero.it>**20090222163732 |
---|
897 | Ignore-this: 4432b4e88e990ba53a5b3fe0f12db2ac |
---|
898 | ] |
---|
899 | [Add missing synopsis and descriptions for alias commands. |
---|
900 | Alberto Berti <alberto@metapensiero.it>**20090221003106 |
---|
901 | Ignore-this: 8aedd03d36d92d912102c7f29e4ca697 |
---|
902 | ] |
---|
903 | [docs: move many specification-like documents into specifications/ |
---|
904 | warner@lothar.com**20090222054054 |
---|
905 | Ignore-this: a4110cc478198c0611205aba1ccf54f4 |
---|
906 | ] |
---|
907 | [test_web.py: increase test coverage of web.status.plural() |
---|
908 | warner@lothar.com**20090222000116 |
---|
909 | Ignore-this: 3138c9d5d2410d8e1121e9b2ed694169 |
---|
910 | ] |
---|
911 | [crawler: fix performance problems: only save state once per timeslice (not after every bucket), don't start the crawler until 5 minutes after node startup |
---|
912 | warner@lothar.com**20090221205649 |
---|
913 | Ignore-this: e6551569982bd31d19779ff15c2d6f58 |
---|
914 | ] |
---|
915 | [test_system: oops, don't assume that all files in storage/ are in a deep storage/shares/prefix/si/shnum path, since now the crawler pickle has a short path |
---|
916 | warner@lothar.com**20090221061710 |
---|
917 | Ignore-this: fde76d0e5cae853014d1bb18b5f17dae |
---|
918 | ] |
---|
919 | [crawler: tolerate low-resolution system clocks (i.e. windows) |
---|
920 | warner@lothar.com**20090221061533 |
---|
921 | Ignore-this: 57286a3abcaf44f6d1a78c3c1ad547a5 |
---|
922 | ] |
---|
923 | [BucketCountingCrawler: store just the count, not cycle+count, since it's too easy to make usage mistakes otherwise |
---|
924 | warner@lothar.com**20090221035831 |
---|
925 | Ignore-this: 573b6f651af74380cdd64059fbbdda4b |
---|
926 | ] |
---|
927 | [test_storage: startService the server, as is now the standard practice |
---|
928 | warner@lothar.com**20090221035755 |
---|
929 | Ignore-this: 3999889bd628fe4039bbcf1b29160453 |
---|
930 | ] |
---|
931 | [crawler: load state from the pickle in init, rather than waiting until startService, so get_state() can be called early |
---|
932 | warner@lothar.com**20090221035720 |
---|
933 | Ignore-this: ecd128a5f4364c0daf4b72d791340b66 |
---|
934 | ] |
---|
935 | [BucketCountingCrawler: rename status and state keys to use 'bucket' instead of 'share', because the former is more accurate |
---|
936 | warner@lothar.com**20090221034606 |
---|
937 | Ignore-this: cf819f63fac9506c878d6c9715ce35b7 |
---|
938 | ] |
---|
939 | [storage: also report space-free-for-root and space-free-for-nonroot, since that helps users understand the space-left-for-tahoe number better |
---|
940 | warner@lothar.com**20090221032856 |
---|
941 | Ignore-this: 9fdf0475f758acd98b73026677170b45 |
---|
942 | ] |
---|
943 | [storage: add bucket-counting share crawler, add its output (number of files+directories maintained by a storage server) and status to the webapi /storage page |
---|
944 | warner@lothar.com**20090221030408 |
---|
945 | Ignore-this: 28761c5e076648026bc5f518506db65c |
---|
946 | ] |
---|
947 | [storage: move si_b2a/si_a2b/storage_index_to_dir out of server.py and into common.py |
---|
948 | warner@lothar.com**20090221030309 |
---|
949 | Ignore-this: 645056428ab797f0b542831c82bf192a |
---|
950 | ] |
---|
951 | [crawler: add get_progress, clean up get_state |
---|
952 | warner@lothar.com**20090221002743 |
---|
953 | Ignore-this: 9bea69f154c75b31a53425a8ea67789b |
---|
954 | ] |
---|
955 | [web/storage: make sure we can handle platforms without os.statvfs too |
---|
956 | warner@lothar.com**20090220220353 |
---|
957 | Ignore-this: 79d4cb8482a8543b9759dc949c86c587 |
---|
958 | ] |
---|
959 | [crawler: provide for one-shot crawlers, which stop after their first full cycle, for share-upgraders and database-populaters |
---|
960 | warner@lothar.com**20090220211911 |
---|
961 | Ignore-this: fcdf72c5ffcafa374d376388be6fa5c5 |
---|
962 | ] |
---|
963 | [web: add Storage status page, improve tests |
---|
964 | warner@lothar.com**20090220202926 |
---|
965 | Ignore-this: e34d5270dcf0237fe72f573f717c7a4 |
---|
966 | ] |
---|
967 | [storage: include reserved_space in stats |
---|
968 | warner@lothar.com**20090220202920 |
---|
969 | Ignore-this: b5b480fe0abad0148ecad0c1fb47ecae |
---|
970 | ] |
---|
971 | [web/check_results: sort share identifiers in the sharemap display |
---|
972 | warner@lothar.com**20090220182922 |
---|
973 | Ignore-this: 5c7bfcee3e15c7082c3653eb8a460960 |
---|
974 | ] |
---|
975 | [webapi: pass client through constructor arguments, remove IClient, should make it easier to test web renderers in isolation |
---|
976 | warner@lothar.com**20090220181554 |
---|
977 | Ignore-this: e7848cd1bee8faf2ce7aaf040b9bf8e3 |
---|
978 | ] |
---|
979 | [test/no_network: do startService on the storage servers, make it easier to customize the storage servers |
---|
980 | warner@lothar.com**20090220022254 |
---|
981 | Ignore-this: e62f328721c007e4c5ee023a6efdf66d |
---|
982 | ] |
---|
983 | [crawler: modify API to support upcoming bucket-counting crawler |
---|
984 | warner@lothar.com**20090220013142 |
---|
985 | Ignore-this: 808f8382837b13082f8b245db2ebee06 |
---|
986 | ] |
---|
987 | [test_backupdb: make the not-a-database file larger, since the older sqlite-2.3.2 on OS-X is easily fooled |
---|
988 | warner@lothar.com**20090220000409 |
---|
989 | Ignore-this: 694d2ca5053bb96e91670765d0cedf2e |
---|
990 | ] |
---|
991 | [web/reliability: add parameter descriptions, adapted from a patch from Terrell Russell. |
---|
992 | warner@lothar.com**20090219222918 |
---|
993 | Ignore-this: 835f5ab01e1aff31b2ff9febb9a51f3 |
---|
994 | ] |
---|
995 | [test_crawler: hush pyflakes |
---|
996 | warner@lothar.com**20090219202340 |
---|
997 | Ignore-this: 765d22c9c9682cc86c5205dc130500af |
---|
998 | ] |
---|
999 | [test_crawler: disable the percentage-of-cpu-used test, since it is too unreliable on our slow buildslaves. But leave the code in place for developers to run by hand. |
---|
1000 | warner@lothar.com**20090219201654 |
---|
1001 | Ignore-this: ff7cf5cfa79c6f2ef0cf959495dd989a |
---|
1002 | ] |
---|
1003 | [reliability.py: fix the numpy conversion, it was completely broken. Thanks to Terrell Russell for the help. |
---|
1004 | warner@lothar.com**20090219195515 |
---|
1005 | Ignore-this: f2b1eb65855111b338e1487feee1bbcf |
---|
1006 | ] |
---|
1007 | [reliability: switch to NumPy, since Numeric is deprecated |
---|
1008 | warner@lothar.com**20090219074435 |
---|
1009 | Ignore-this: f588a68e9bcd3b0bc3653570882b6fd5 |
---|
1010 | ] |
---|
1011 | [setup.py: fix pyflakes complaints |
---|
1012 | warner@lothar.com**20090219073643 |
---|
1013 | Ignore-this: a314e5456b0a796bc9f70232a119ec68 |
---|
1014 | ] |
---|
1015 | [move show-tool-versions out of setup.py and into a separate script in misc/ , since setuptools is trying to build and install a bunch of stuff first |
---|
1016 | warner@lothar.com**20090219073558 |
---|
1017 | Ignore-this: 9e56bc43026379212e6b6671ed6a1fd4 |
---|
1018 | ] |
---|
1019 | [test_crawler: don't require >=1 cycle on cygwin |
---|
1020 | warner@lothar.com**20090219065818 |
---|
1021 | Ignore-this: b8d2d40f26aeb30a7622479840a04635 |
---|
1022 | ] |
---|
1023 | [setup.py: add show_tool_versions command, for the benefit of a new buildbot step |
---|
1024 | warner@lothar.com**20090219062436 |
---|
1025 | Ignore-this: 21d761c76a033e481831584bedc60c86 |
---|
1026 | ] |
---|
1027 | [setup.py: wrap to 80 cols, no functional changes |
---|
1028 | warner@lothar.com**20090219055751 |
---|
1029 | Ignore-this: d29e57c6ee555f2ee435667b7e13e60b |
---|
1030 | ] |
---|
1031 | [crawler: use fileutil.move_info_place in preference to our own version |
---|
1032 | warner@lothar.com**20090219051342 |
---|
1033 | Ignore-this: ee4e46f3de965610503ba36b28184db9 |
---|
1034 | ] |
---|
1035 | [fileutil: add move_into_place(), to perform the standard unix trick of atomically replacing a file, with a fallback for windows |
---|
1036 | warner@lothar.com**20090219051310 |
---|
1037 | Ignore-this: c1d35e8ca88fcb223ea194513611c511 |
---|
1038 | ] |
---|
1039 | [crawler: fix problems on windows and our slow cygwin slave |
---|
1040 | warner@lothar.com**20090219042431 |
---|
1041 | Ignore-this: 8019cb0da79ba00c536183a6f57b4cab |
---|
1042 | ] |
---|
1043 | [#633: first version of a rate-limited interruptable share-crawler |
---|
1044 | warner@lothar.com**20090219034633 |
---|
1045 | Ignore-this: 5d2d30c743e3b096a8e775d5a9b33601 |
---|
1046 | ] |
---|
1047 | [change StorageServer to take nodeid in the constructor, instead of assigning it later, since it's cleaner and because the original problem (Tubs not being ready until later) went away |
---|
1048 | warner@lothar.com**20090218222301 |
---|
1049 | Ignore-this: 740d582f20c93bebf60e21d9a446d3d2 |
---|
1050 | ] |
---|
1051 | [test_system: split off checker tests to test_deepcheck.py, this file is too big |
---|
1052 | warner@lothar.com**20090218214234 |
---|
1053 | Ignore-this: 82bf8db81dfbc98224bbf694054a8761 |
---|
1054 | ] |
---|
1055 | [break storage.py into smaller pieces in storage/*.py . No behavioral changes. |
---|
1056 | warner@lothar.com**20090218204655 |
---|
1057 | Ignore-this: 312d408d1cacc5a764d791b53ebf8f91 |
---|
1058 | ] |
---|
1059 | [immutable/layout: minor change to repr name |
---|
1060 | warner@lothar.com**20090218204648 |
---|
1061 | Ignore-this: c8781ef15b7dea63b39236a1899b86ce |
---|
1062 | ] |
---|
1063 | [docs: add lease-tradeoffs diagram |
---|
1064 | warner@lothar.com**20090218204137 |
---|
1065 | Ignore-this: c22a589ad465dac846da834c30dc4083 |
---|
1066 | ] |
---|
1067 | [interfaces.py: allow add/renew/cancel-lease to return Any, so that 1.3.1 clients (the first to use these calls) can tolerate future storage servers which might return something other than None |
---|
1068 | warner@lothar.com**20090218192903 |
---|
1069 | Ignore-this: dcbb704a05416ecc66d90fb486c3d75b |
---|
1070 | ] |
---|
1071 | [docs/debian.txt: minor edit |
---|
1072 | warner@lothar.com**20090218032212 |
---|
1073 | Ignore-this: 64ff1fb163ffca4bcfd920254f1cf866 |
---|
1074 | ] |
---|
1075 | [add --add-lease to 'tahoe check', 'tahoe deep-check', and webapi. |
---|
1076 | warner@lothar.com**20090218013243 |
---|
1077 | Ignore-this: 176b2006cef5041adcb592ee83e084dd |
---|
1078 | ] |
---|
1079 | [change RIStorageServer.remote_add_lease to exit silently in case of no-such-bucket, instead of raising IndexError, because that makes the upcoming --add-lease feature faster and less noisy |
---|
1080 | warner@lothar.com**20090218013053 |
---|
1081 | Ignore-this: 6fdfcea2c832178f1ce72ab0ff510f3a |
---|
1082 | ] |
---|
1083 | [CLI #590: convert 'tahoe deep-check' to streaming form, improve display, add tests |
---|
1084 | warner@lothar.com**20090217231511 |
---|
1085 | Ignore-this: 6d88eb94b1c877eacc8c5ca7d0aac776 |
---|
1086 | ] |
---|
1087 | [interfaces.py: document behavior of add_lease/renew_lease/cancel_lease, before I change it |
---|
1088 | warner@lothar.com**20090217194809 |
---|
1089 | Ignore-this: 703c6712926b8edb19d55d790b65a400 |
---|
1090 | ] |
---|
1091 | [test_backupdb: improve error messages if the test fails |
---|
1092 | warner@lothar.com**20090217170838 |
---|
1093 | Ignore-this: ef657e87c66e4304d3e0aca9831b84c |
---|
1094 | ] |
---|
1095 | [webapi #590: add streaming deep-check. Still need a CLI tool to use it. |
---|
1096 | warner@lothar.com**20090217053553 |
---|
1097 | Ignore-this: a0edd3d2a531c48a64d8397f7e4b208c |
---|
1098 | ] |
---|
1099 | [test_web.Grid: change the CHECK() function to make it easier to test t= values with hyphens in them |
---|
1100 | warner@lothar.com**20090217050034 |
---|
1101 | Ignore-this: 410c08735347c2057df52f6716520228 |
---|
1102 | ] |
---|
1103 | [test_web: improve checker-results coverage with a no-network -based test, enhance no-network harness to assist, fix some bugs in web/check_results.py that were exposed |
---|
1104 | warner@lothar.com**20090217041242 |
---|
1105 | Ignore-this: fe54bb66a9ae073c002a7af51cd1e18 |
---|
1106 | ] |
---|
1107 | [web: fix handling of reliability page when Numeric is not available |
---|
1108 | warner@lothar.com**20090217015658 |
---|
1109 | Ignore-this: 9d329182f1b2e5f812e5e7eb5f4cf2ed |
---|
1110 | ] |
---|
1111 | [test/no_network: update comments with setup timing: no_network takes 50ms, SystemTestMixin takes 2s (on my laptop) |
---|
1112 | warner@lothar.com**20090217000643 |
---|
1113 | Ignore-this: cc778fa3219775b25057bfc9491f8f34 |
---|
1114 | ] |
---|
1115 | [test_upload: rewrite in terms of no-network GridTestMixin, improve no_network.py as necessary |
---|
1116 | warner@lothar.com**20090216234457 |
---|
1117 | Ignore-this: 80a341d5aa3036d24de98e267499d70d |
---|
1118 | ] |
---|
1119 | [test_download: rewrite in terms of no-network GridTestMixin, improve no_network.py as necessary |
---|
1120 | warner@lothar.com**20090216233658 |
---|
1121 | Ignore-this: ec2febafd2403830519120fb3f3ca04e |
---|
1122 | ] |
---|
1123 | [test_dirnode.py: convert Deleter to new no-network gridtest |
---|
1124 | warner@lothar.com**20090216232348 |
---|
1125 | Ignore-this: 8041739442ec4db726675e48f9775ae9 |
---|
1126 | ] |
---|
1127 | [test_cli.py: modify to use the new 'no-network' gridtest instead of SystemTestMixin, which speeds it up from 73s to 43s on my system |
---|
1128 | warner@lothar.com**20090216232005 |
---|
1129 | Ignore-this: ec6d010c9182aa72049d1fb894cf890e |
---|
1130 | ] |
---|
1131 | [tests: fix no_network framework to work with upload/download and checker |
---|
1132 | warner@lothar.com**20090216231947 |
---|
1133 | Ignore-this: 74b4dbd66b8384ae7c7544969fe4f744 |
---|
1134 | ] |
---|
1135 | [client.py: improve docstring |
---|
1136 | warner@lothar.com**20090216231532 |
---|
1137 | Ignore-this: bbaa9e3f63fdb0048e3125c4681b2d1f |
---|
1138 | ] |
---|
1139 | [test_cli: add test coverage for help strings |
---|
1140 | warner@lothar.com**20090216210833 |
---|
1141 | Ignore-this: d2020849107f687448e159a19d0e5dab |
---|
1142 | ] |
---|
1143 | [test/no_network: new test harness, like system-test but doesn't use the network so it's faster |
---|
1144 | warner@lothar.com**20090216205844 |
---|
1145 | Ignore-this: 31678f7bdef30b0216fd657fc6145534 |
---|
1146 | ] |
---|
1147 | [interfaces.py: minor docstring edit |
---|
1148 | warner@lothar.com**20090216205816 |
---|
1149 | Ignore-this: cec3855070197f7920b370f95e8b07bd |
---|
1150 | ] |
---|
1151 | [setup: if you sdist_dsc (to produce the input files for dpkg-buildpackage) then run darcsver first |
---|
1152 | zooko@zooko.com**20090216201558 |
---|
1153 | Ignore-this: b85be51b3d4a9a19a3366e690f1063e2 |
---|
1154 | ] |
---|
1155 | [doc: a few edits to docs made after the 1.3.0 release |
---|
1156 | zooko@zooko.com**20090216201539 |
---|
1157 | Ignore-this: dbff3b929d88134d862f1dffd1ef068a |
---|
1158 | ] |
---|
1159 | [test_cli: improve test coverage slightly |
---|
1160 | warner@lothar.com**20090216030451 |
---|
1161 | Ignore-this: e01ccc6a6fb44aaa4fb14fe8669e2065 |
---|
1162 | ] |
---|
1163 | [test_util: get almost full test coverage of dictutil, starting with the original pyutil tests as a base. The remaining three uncovered lines involve funny cases of ValueOrderedDict that I can't figure out how to get at |
---|
1164 | warner@lothar.com**20090216023210 |
---|
1165 | Ignore-this: dc1f0c6d8c003c0ade38bc8f8516b04d |
---|
1166 | ] |
---|
1167 | [provisioning/reliability: add tests, hush pyflakes, remove dead code, fix web links |
---|
1168 | warner@lothar.com**20090215222451 |
---|
1169 | Ignore-this: 7854df3e0130d9388f06efd4c797262f |
---|
1170 | ] |
---|
1171 | [util/statistics: add tests, fix mean_repair_cost |
---|
1172 | warner@lothar.com**20090215222326 |
---|
1173 | Ignore-this: c576eabc74c23b170702018fc3c122d9 |
---|
1174 | ] |
---|
1175 | [test_repairer: hush pyflakes |
---|
1176 | warner@lothar.com**20090215222310 |
---|
1177 | Ignore-this: 875eb52e86077cda77efd02da77f8cfa |
---|
1178 | ] |
---|
1179 | [lossmodel.lyx: move draft paper into docs/proposed/, since it's unfinished |
---|
1180 | warner@lothar.com**20090215221905 |
---|
1181 | Ignore-this: 7f7ee204e47fd66932759c94deefe68 |
---|
1182 | ] |
---|
1183 | [build a 'reliability' web page, with a simulation of file decay and repair over time |
---|
1184 | warner@lothar.com**20090213234234 |
---|
1185 | Ignore-this: 9e9623eaac7b0637bbd0071f082bd345 |
---|
1186 | ] |
---|
1187 | [docs: relnotes-short.txt |
---|
1188 | zooko@zooko.com**20090215163510 |
---|
1189 | Ignore-this: 683649bb13499bbe0e5cea2e1716ff59 |
---|
1190 | linkedin.com imposed a strict limit on the number of characters I could post. This forced me to prune and prune and edit and edit until relnotes.txt was a quarter of its former size. Here's the short version. |
---|
1191 | ] |
---|
1192 | [TAG allmydata-tahoe-1.3.0 |
---|
1193 | zooko@zooko.com**20090214000556 |
---|
1194 | Ignore-this: aa6c9a31a14a58ad2298cb7b08d3ea70 |
---|
1195 | ] |
---|
1196 | [docs: a few last-minute edits to the docs for 1.3.0 (also this patch will accompany the tag and conveniently trigger the buildbots to build a 1.3.0 version) |
---|
1197 | zooko@zooko.com**20090214000500 |
---|
1198 | Ignore-this: 879c9b10f0e5b9ed0031236e0714ddfa |
---|
1199 | ] |
---|
1200 | [setup: remove attempt to automatically satisfy dependency on pywin32 |
---|
1201 | zooko@zooko.com**20090213234939 |
---|
1202 | Ignore-this: ac02d54a956f7cc58bd3c0802764005f |
---|
1203 | ] |
---|
1204 | [NEWS: mention #625 (deep-repair breaks when it tries to repair a read-only directory) |
---|
1205 | warner@lothar.com**20090213225534 |
---|
1206 | Ignore-this: a3b6b3dd483f8a4a459dfc064760326f |
---|
1207 | ] |
---|
1208 | [test_dirnode: #625 run deep-check on a readonly dirnode too |
---|
1209 | warner@lothar.com**20090213205337 |
---|
1210 | Ignore-this: 2a18d33a7cc99c9959b7182e37b35077 |
---|
1211 | ] |
---|
1212 | [docs: CREDITS |
---|
1213 | zooko@zooko.com**20090213201245 |
---|
1214 | Ignore-this: 5d3101e680739e6cdacb4351b518ae33 |
---|
1215 | ] |
---|
1216 | [figleaf_htmlizer: fix order of summary counters |
---|
1217 | warner@lothar.com**20090213155753 |
---|
1218 | Ignore-this: aa6f0cd37e79857482967496252088da |
---|
1219 | ] |
---|
1220 | [Makefile: minor, add .PHONY declarations |
---|
1221 | warner@lothar.com**20090213072341 |
---|
1222 | Ignore-this: 7666385dc250014198454707ee82cd1c |
---|
1223 | ] |
---|
1224 | [figleaf_htmlizer: oops, re-ignore files that aren't under root, like code in auto-built eggs |
---|
1225 | warner@lothar.com**20090213060022 |
---|
1226 | Ignore-this: b4e67d5e025198d01e373728d1a74b11 |
---|
1227 | ] |
---|
1228 | [setup: relnotes.txt mention the iPhone app and CIFS/SMB (tahoe-w32-client) |
---|
1229 | zooko@zooko.com**20090213044121 |
---|
1230 | Ignore-this: 2c9b8720579c4c146e4416c5a02c77a5 |
---|
1231 | ] |
---|
1232 | [setup: make the "full version string" be "allmydata-tahoe/1.3.0" instead of "allmydata-tahoe-1.3.0" and the UserAgent string of the cli be "allmydata-tahoe/1.3.0 (tahoe-client)" |
---|
1233 | zooko@zooko.com**20090213043738 |
---|
1234 | Ignore-this: f41a0472abc9910ad180831963d740e8 |
---|
1235 | This is webbish. Thanks to kpreid for suggesting it. |
---|
1236 | ] |
---|
1237 | [docs: relnotes.txt final (!?) update for 1.3.0! |
---|
1238 | zooko@zooko.com**20090213042814 |
---|
1239 | Ignore-this: 7a959eba00115474ff048cd84ecab495 |
---|
1240 | ] |
---|
1241 | [docs: known_issues.txt: my version of #615, remove "issue numbers", edits, move tahoe-1.1.0 issues to historical |
---|
1242 | zooko@zooko.com**20090213041621 |
---|
1243 | Ignore-this: 58dee952a3139791ba0fe03f03fcf8bb |
---|
1244 | ] |
---|
1245 | [docs: CREDITS |
---|
1246 | zooko@zooko.com**20090213034228 |
---|
1247 | Ignore-this: d6bb651d657ed8967ca1dfb23afbd00e |
---|
1248 | ] |
---|
1249 | [Makefile: add figleaf-delta-output, to render figleaf coverage differences with a previous run |
---|
1250 | warner@lothar.com**20090212211829 |
---|
1251 | Ignore-this: 9c78861c4abed3d6c2d013ff40d9b4fb |
---|
1252 | ] |
---|
1253 | [figleaf_htmlizer: emit stats to stdout, so buildbot can see it |
---|
1254 | warner@lothar.com**20090212211020 |
---|
1255 | Ignore-this: bf5b503717580561c2fdb6c619159c9 |
---|
1256 | ] |
---|
1257 | [figleaf_htmlizer: render changes in coverage relative to a previous test run using --old-coverage |
---|
1258 | warner@lothar.com**20090212210412 |
---|
1259 | Ignore-this: 6c2bfc21a0671f1a07e19d3f9fd17157 |
---|
1260 | ] |
---|
1261 | [immutable repairer: fix DownUpConnector so that it satisfies short reads the were requested after the last write and before the close |
---|
1262 | zooko@zooko.com**20090212230447 |
---|
1263 | Ignore-this: 2856bb9582d9c38a82fd9aad7fd10b57 |
---|
1264 | This is probably the cause of the very rare "loss of progress" bug. This is tested by unit tests. A recent patch changed this to errback instead of losing progress, and now this patch is changing it again to return a short read instead of errbacking. Returning a short read is what the uploader (in encode.py) is expecting, when it is reading the last block of the ciphertext, which might be shorter than the other blocks. |
---|
1265 | ] |
---|
1266 | [immutable repairer: add an assertion that a certain value in this tricky function is always what I think it is |
---|
1267 | zooko@zooko.com**20090212223132 |
---|
1268 | Ignore-this: 65b6920d67d7289f0dfc38c8e42f7c82 |
---|
1269 | ] |
---|
1270 | [immutable repairer: add tests of how it handles short reads |
---|
1271 | zooko@zooko.com**20090212224853 |
---|
1272 | Ignore-this: bca74cfa2b1f27d733540fccd1c29839 |
---|
1273 | ] |
---|
1274 | [nodeadmin: node stops itself if a hotline file hasn't been touched in 60 seconds now, instead of in 40 seconds |
---|
1275 | zooko@zooko.com**20090212212131 |
---|
1276 | Ignore-this: a6f44b9dfd9f405d4fe9ef66a6d293da |
---|
1277 | A test failed on draco (MacPPC) because it took 49 seconds to get around to running the test, and the node had already stopped itself when the hotline file was 40 seconds old. |
---|
1278 | ] |
---|
1279 | [immutable repairer: errback any pending readers of DownUpConnectorwhen it runs out of bytes, and test that fact |
---|
1280 | zooko@zooko.com**20090212021129 |
---|
1281 | Ignore-this: efd1fac753dad541fe5a0f232bcbf161 |
---|
1282 | ] |
---|
1283 | [figleaf_htmlizer: more rearranging, behavior should still be unchanged |
---|
1284 | warner@allmydata.com**20090212020515 |
---|
1285 | Ignore-this: 8fb7dd723b2d26bdcf1d57685b113bb8 |
---|
1286 | ] |
---|
1287 | [figleaf_htmlizer: break it up into subfunctions, behavior should still be unchanged |
---|
1288 | warner@allmydata.com**20090212015607 |
---|
1289 | Ignore-this: 9644ec95b0f9950722c13ad3c9654e22 |
---|
1290 | ] |
---|
1291 | [figleaf_htmlizer: rewrite in class form, behavior should be the same as before |
---|
1292 | warner@allmydata.com**20090212014050 |
---|
1293 | Ignore-this: d00b838c0af1ea2d71be246bbcf36c53 |
---|
1294 | ] |
---|
1295 | [figleaf_htmlizer: rewrite with twisted.python.usage, remove logging: should behave the same as before |
---|
1296 | warner@allmydata.com**20090212011643 |
---|
1297 | Ignore-this: 86f961e369625e9ab5188e817b083fe4 |
---|
1298 | ] |
---|
1299 | [figleaf_htmlizer: expand tabs, fix to 4-space indents. No functional changes. |
---|
1300 | warner@allmydata.com**20090212010542 |
---|
1301 | Ignore-this: 5c9aa3704eacf1b42a985ade8e43dd1f |
---|
1302 | ] |
---|
1303 | [Makefile: include the figleaf pickle in the uploaded coverage data, for later differential analysis |
---|
1304 | warner@allmydata.com**20090212000913 |
---|
1305 | Ignore-this: e31002f4a7d55d8a2ca1131a1066c066 |
---|
1306 | ] |
---|
1307 | [Makefile: fix test-clean, by ignoring _appname.py and removing src/allmydata_tahoe.egg-info |
---|
1308 | warner@allmydata.com**20090212000434 |
---|
1309 | Ignore-this: 17e4513eb0c844f434b863d40319dfdd |
---|
1310 | ] |
---|
1311 | [setup: from the perspective of darcs, src/allmydata/_appname.py is a very boring file, indeed |
---|
1312 | zooko@zooko.com**20090211233108 |
---|
1313 | Ignore-this: d22a1d76879744fa2a4dd6ea218511ba |
---|
1314 | ] |
---|
1315 | [versioning: include an "appname" in the application version string in the versioning protocol, and make that appname be controlled by setup.py |
---|
1316 | zooko@zooko.com**20090211231816 |
---|
1317 | Ignore-this: 6a0e62492bd271cdaaf696c4a35bc919 |
---|
1318 | It is currently hardcoded in setup.py to be 'allmydata-tahoe'. Ticket #556 is to make it configurable by a runtime command-line argument to setup.py: "--appname=foo", but I suddenly wondered if we really wanted that and at the same time realized that we don't need that for tahoe-1.3.0 release, so this patch just hardcodes it in setup.py. |
---|
1319 | setup.py inspects a file named 'src/allmydata/_appname.py' and assert that it contains the string "__appname__ = 'allmydata-tahoe'", and creates it if it isn't already present. src/allmydata/__init__.py import _appname and reads __appname__ from it. The rest of the Python code imports allmydata and inspects "allmydata.__appname__", although actually every use it uses "allmydata.__full_version__" instead, where "allmydata.__full_version__" is created in src/allmydata/__init__.py to be: |
---|
1320 | |
---|
1321 | __full_version__ = __appname + '-' + str(__version__). |
---|
1322 | |
---|
1323 | All the code that emits an "application version string" when describing what version of a protocol it supports (introducer server, storage server, upload helper), or when describing itself in general (introducer client), usese allmydata.__full_version__. |
---|
1324 | |
---|
1325 | This fixes ticket #556 at least well enough for tahoe-1.3.0 release. |
---|
1326 | |
---|
1327 | ] |
---|
1328 | [setup: add new darcsver-1.2.1 which includes Brian's and Nils Durner's patch to ignore non-ascii chars in XML output |
---|
1329 | zooko@zooko.com**20090211215253 |
---|
1330 | Ignore-this: d0319ec509f6562a45c9a555cf37d3cc |
---|
1331 | ] |
---|
1332 | [backupdb: cosmetic: capitalize the no-pysqlite instructions properly. Thanks to Terrell Russell for the catch. |
---|
1333 | warner@allmydata.com**20090211212830 |
---|
1334 | Ignore-this: a17b34a12bbe96ad5b531ef5d293471e |
---|
1335 | ] |
---|
1336 | [test_repairer: disable repair-from-corruption tests until other things are improved well enough to make it useful |
---|
1337 | warner@allmydata.com**20090211210159 |
---|
1338 | Ignore-this: bf2c780be028f0f5556f1aed04cc29b9 |
---|
1339 | ] |
---|
1340 | [NEWS: explain limitations of the new repairer |
---|
1341 | warner@allmydata.com**20090211204352 |
---|
1342 | Ignore-this: 455822aeeae12b999fb28ba8a9265a51 |
---|
1343 | ] |
---|
1344 | [setup: removed bundled darcsver-1.2.0 |
---|
1345 | zooko@zooko.com**20090211201904 |
---|
1346 | Ignore-this: a826819eb8665e6d00e30a929f1f9831 |
---|
1347 | (I'm about to add a new bundled darcsver-1.2.1, but I want to see what the buildbots will do when there is no bundled darcsver present.) |
---|
1348 | ] |
---|
1349 | [trivial: whitespace |
---|
1350 | zooko@zooko.com**20090211171935 |
---|
1351 | Ignore-this: 38b042422093adc2e176e448051f19f |
---|
1352 | ] |
---|
1353 | [docs/known_issues: mention #615 javascript-vs-frames, for zooko to improve/rewrite |
---|
1354 | warner@allmydata.com**20090211201453 |
---|
1355 | Ignore-this: b4805670c3700d90db39fb008b0f2c92 |
---|
1356 | ] |
---|
1357 | [storage: make add-lease work, change default ownernum=1 since 0 is reserved to mean 'no lease here' |
---|
1358 | warner@allmydata.com**20090211053938 |
---|
1359 | Ignore-this: 9437ec1529c34351f2725df37e0859c |
---|
1360 | ] |
---|
1361 | [#620: storage: allow mutable shares to be deleted, with a writev where new_length=0 |
---|
1362 | warner@allmydata.com**20090211053756 |
---|
1363 | Ignore-this: 81f79e0d72f7572bdc1c9f01bb91620 |
---|
1364 | ] |
---|
1365 | [test_cli.Backup: insert some stalls to make sure two successive backups get distinct timestamps, avoiding intermittent failures |
---|
1366 | warner@allmydata.com**20090211023709 |
---|
1367 | Ignore-this: a146380e9adf94c2d301b59e4d23f02 |
---|
1368 | ] |
---|
1369 | [#619: make 'tahoe backup' complain and refuse to run if sqlite is unavailable and --no-backupdb is not passed |
---|
1370 | warner@allmydata.com**20090211004910 |
---|
1371 | Ignore-this: 46ca8be19011b0ec11e7a10cb2556386 |
---|
1372 | ] |
---|
1373 | [NEWS: point out that 'tahoe backup' requires a 1.3.0-or-later client node |
---|
1374 | warner@allmydata.com**20090210210025 |
---|
1375 | Ignore-this: 26e3e87dd9c762e59d6e0eb9f1acfb8d |
---|
1376 | ] |
---|
1377 | [tests: increase the default timeout for SystemTestMixin -based tests to 300 seconds, since our slower buildslaves sometimes take longer than the default 120s |
---|
1378 | warner@allmydata.com**20090210204412 |
---|
1379 | Ignore-this: 781ec7b1060fa8c75dc12401b07ee358 |
---|
1380 | ] |
---|
1381 | [immutable: repairer: add a simple test to exercise the "leftover" code path, fix the bug (and rename the variable "leftover" to "extra") |
---|
1382 | zooko@zooko.com**20090210181245 |
---|
1383 | Ignore-this: 8426b3cd55ff38e390c4d1d5c0b87e9d |
---|
1384 | ] |
---|
1385 | [docs: not-quite-final version of relnotes.txt for tahoe-1.3.0 |
---|
1386 | zooko@zooko.com**20090210170227 |
---|
1387 | Ignore-this: 64e11f3619d537eae28f4d33977bd7ab |
---|
1388 | ] |
---|
1389 | [docs: small edit to about.html |
---|
1390 | zooko@zooko.com**20090210170219 |
---|
1391 | Ignore-this: fa79838f4cdac17c09b6c3332e8a68b5 |
---|
1392 | ] |
---|
1393 | [docs: NEWS: move the most exciting items to the top, break them out of less exciting categories, update a couple of stale bits, and a touch of editing |
---|
1394 | zooko@zooko.com**20090210084843 |
---|
1395 | Ignore-this: 181b31e3338b14b70ee9bc068ed2e4fb |
---|
1396 | ] |
---|
1397 | [docs: edit about.html |
---|
1398 | zooko@zooko.com**20090210080102 |
---|
1399 | Ignore-this: d96f9b21f88d4c7a552f9ed3db5c6af4 |
---|
1400 | ] |
---|
1401 | [immutable: tighten preconditions -- you can write empty strings or read zero bytes, and add the first simple unit test of DownUpConnector |
---|
1402 | zooko@zooko.com**20090210065647 |
---|
1403 | Ignore-this: 81aad112bb240b23f92e38f06b4ae140 |
---|
1404 | ] |
---|
1405 | [immutable: tests: the real WRITE_LEEWAY is 35 (it was a mistake to move it from 10 to 35 earlier -- I had seen a failure in which it took 35 times as many writes as I thought were optimal, but I misread and thought it took only 20 times as many) |
---|
1406 | zooko@zooko.com**20090210055348 |
---|
1407 | Ignore-this: e81c34d31fe2e3fd641a284a300352cc |
---|
1408 | ] |
---|
1409 | [immutable: defensive programming: assert that the encrypted readable gave you no more than the number of bytes you asked for |
---|
1410 | zooko@zooko.com**20090210054605 |
---|
1411 | Ignore-this: 72cac6a6ccdd9533af4bc02b64598e6d |
---|
1412 | (There is a bug in the current DownUpConnector which can cause it to give more bytes than you asked for on one request, and then less on the next, effectively shifting some of the bytes to an earlier request, but I think this bug never gets triggered in practice.) |
---|
1413 | ] |
---|
1414 | [docs: suggest Python 2.5 -- Python 2.6 is not as well tested yet |
---|
1415 | zooko@zooko.com**20090210054421 |
---|
1416 | Ignore-this: 3ef6988c693330d4937b4d8e1a996c39 |
---|
1417 | ] |
---|
1418 | [immutable: tests: sigh, raise, again the limit of how many extra writes you can do and still pass this test |
---|
1419 | zooko@zooko.com**20090210020931 |
---|
1420 | Ignore-this: 91faf5d6919ca27f8212efc8d19b04c5 |
---|
1421 | Obviously requiring the code under test to perform within some limit isn't very meaningful if we raise the limit whenever the test goes outside of it. |
---|
1422 | But I still don't want to remove the test code which measures how many writes (and, elsewhere, how many reads) a client does in order to fulfill these duties. |
---|
1423 | Let this number -- now 20 -- stand as an approximation of the inefficiency of our code divided by my mental model of how many operations are actually optimal for these duties. |
---|
1424 | |
---|
1425 | ] |
---|
1426 | [immutable: tests: assert that verifier gives a clean bill of health after corruption and repair (the previous patch mistakenly did this only after deletion and repair), and also test whether deleting seven other shares and then downloading works. Also count the number of shares stored in the local filesystem. |
---|
1427 | zooko@zooko.com**20090210020841 |
---|
1428 | Ignore-this: ac803d0599f336c308fe74a2582e6aa4 |
---|
1429 | ] |
---|
1430 | [immutable: test: add a test after attempting to repair from corruption: does a full verify run give the file a clean bill of health? If not, the you haven't successfully repaired it. |
---|
1431 | zooko@zooko.com**20090210010149 |
---|
1432 | Ignore-this: 43faea747e7afccaae230d50c067adc6 |
---|
1433 | This will make the repairer tests more consistent -- less accidentally passing due to getting lucky. |
---|
1434 | ] |
---|
1435 | [immutable: tests: put shares back to their pristine condition in between each test of corrupting-and-repairing them |
---|
1436 | zooko@zooko.com**20090210002956 |
---|
1437 | Ignore-this: 45de680a6ac69b1845c0c74534913dec |
---|
1438 | This is important, because if the repairer doesn't completely repair all kinds of corruption (as the current one doesn't), then the successive tests get messed up by assuming that the shares were uncorrupted when the test first set about to corrupt them. |
---|
1439 | ] |
---|
1440 | [upload: add a think-of-the-compatibility note to UploadResults |
---|
1441 | warner@allmydata.com**20090209205004 |
---|
1442 | Ignore-this: 9ae325ac7281ab67ce45bccb8af672a |
---|
1443 | ] |
---|
1444 | [helper #609: uploading client should ignore old helper's UploadResults, which were in a different format |
---|
1445 | warner@allmydata.com**20090209204543 |
---|
1446 | Ignore-this: 4868a60d01fa528077d8cf6efa9db35d |
---|
1447 | ] |
---|
1448 | [test_runner: skip all spawnProcess-using tests on cygwin, since spawnProcess just hangs forever |
---|
1449 | warner@lothar.com**20090209083400 |
---|
1450 | Ignore-this: e8c2c85650b61cf084cb8a8852118b86 |
---|
1451 | ] |
---|
1452 | [test_runner.py: revert the CreateNode section to using runner() inline, rather than spawning a process, to get more precise coverage |
---|
1453 | warner@lothar.com**20090209082617 |
---|
1454 | Ignore-this: e7f0ae5c9a2c2d8157289ef39fda371 |
---|
1455 | ] |
---|
1456 | [storage #596: announce 'tolerates-immutable-read-overrun' to the version announcement, to indicate that a read() on an immutable share where offset+length is beyond the end of the file will return a truncated string instead of raising an exception |
---|
1457 | warner@lothar.com**20090209015602 |
---|
1458 | Ignore-this: cbd07102909449da55067184a63fc0d1 |
---|
1459 | ] |
---|
1460 | [test_upload: add test of maximum-immutable-share-size, to complete the last item of #538 |
---|
1461 | warner@lothar.com**20090209014127 |
---|
1462 | Ignore-this: 943b9b11812ad784ec824db7a8a7aff9 |
---|
1463 | ] |
---|
1464 | [docs/specifications: add an outline of the spec documents we'd like to have some day |
---|
1465 | warner@lothar.com**20090208234748 |
---|
1466 | Ignore-this: b591ad0361810e5aae37cba07fdfbd43 |
---|
1467 | ] |
---|
1468 | [test_cli.Backup: capture stderr when sqlite is unavailable |
---|
1469 | warner@lothar.com**20090207211440 |
---|
1470 | Ignore-this: 4978b1a149e32bd31e66d5bc4269bc55 |
---|
1471 | ] |
---|
1472 | [docs: add mac/README.txt to explain the first few basic facts about what the files are in this directory |
---|
1473 | zooko@zooko.com**20090207223321 |
---|
1474 | Ignore-this: d89a55b55cab69d2171529f62fcfbc11 |
---|
1475 | ] |
---|
1476 | [test_repairer: wrap comments to 80cols, my laptop does not have a wide screen. No functional changes. |
---|
1477 | warner@lothar.com**20090207200626 |
---|
1478 | Ignore-this: f539c156f3b79cfe49c7cf0fa788994e |
---|
1479 | ] |
---|
1480 | [immutable/checker: wrap comments to 80cols, my laptop does not have a wide screen. No functional changes. |
---|
1481 | warner@lothar.com**20090207200439 |
---|
1482 | Ignore-this: ad8f03eb17b217987268f76d15fa5655 |
---|
1483 | ] |
---|
1484 | [test/common.py: in share-layout-reading code, use '>L' consistently, since '>l' doesn't specify the signedness and the windows tests appear to be failing with an endianness-like problem (version==0x01000000). Also use binary mode when editing sharefiles |
---|
1485 | warner@lothar.com**20090207193817 |
---|
1486 | Ignore-this: dec2c7208b2fe7a56e74f61a8dc304f6 |
---|
1487 | ] |
---|
1488 | [test_cli: increase timeout on test_backup, since our dapper buildslave is really slow |
---|
1489 | warner@lothar.com**20090206081753] |
---|
1490 | [backupdb.py: catch OperationalError on duplicate-insert too, since pysqlite2 on dapper raises it instead of IntegrityError |
---|
1491 | warner@lothar.com**20090206073401] |
---|
1492 | [test_backupdb.py: reset the check-timers after one step, otherwise a slow host can false-fail |
---|
1493 | warner@lothar.com**20090206073305] |
---|
1494 | [NEWS: announce the #598 'tahoe backup' command |
---|
1495 | warner@lothar.com**20090206054416] |
---|
1496 | [docs/CLI: document 'tahoe backup' |
---|
1497 | warner@allmydata.com**20090206041445 |
---|
1498 | Ignore-this: 60dade71212f2a65d3c0aaca7fb8ba00 |
---|
1499 | ] |
---|
1500 | [test_cli.backup: oops, fix test to work even when sqlite is unavailable |
---|
1501 | warner@allmydata.com**20090206041042 |
---|
1502 | Ignore-this: 8a550049c8eb27c34ab2440263e07593 |
---|
1503 | ] |
---|
1504 | [#598: add cli+backupdb tests, improve user display, update docs, move docs out of proposed/ |
---|
1505 | warner@allmydata.com**20090206040701 |
---|
1506 | Ignore-this: 7a795db5573247471c6a268fb0aa23c0 |
---|
1507 | ] |
---|
1508 | [#598: add backupdb to 'tahoe backup' command, enable it by default |
---|
1509 | warner@allmydata.com**20090206015640 |
---|
1510 | Ignore-this: 4e6a158d97549c55dbc49f6d69be8c44 |
---|
1511 | ] |
---|
1512 | [add sqlite-based backupdb, for #598 and others (including 'tahoe cp'). Not enabled yet. |
---|
1513 | warner@allmydata.com**20090206001756 |
---|
1514 | Ignore-this: 36d9a56b257e481091fd1a105318cc25 |
---|
1515 | ] |
---|
1516 | [setup: require new bundled setuptools-0.6c12dev |
---|
1517 | zooko@zooko.com**20090205152923 |
---|
1518 | Ignore-this: 516bbb2195a20493fa72a0ca11a2361c |
---|
1519 | ] |
---|
1520 | [setup: bundle setuptools-0.6c12dev (our own toothpick of setuptools) this version completes my patch to fix http://bugs.python.org/setuptools/issue54 , which is necessary for tahoe to build with --prefix=support without doing a lot of PYTHONPATH gymnastics around the call to setup.py |
---|
1521 | zooko@zooko.com**20090205152818 |
---|
1522 | Ignore-this: da7b1587ee91180c4a1a56f217311de3 |
---|
1523 | ] |
---|
1524 | [setup: remove old bundled setuptools-0.6c11dev (our own toothpick of setuptools) |
---|
1525 | zooko@zooko.com**20090205152758 |
---|
1526 | Ignore-this: 21140fb5a62bf855d9ffa8af8ff4cdac |
---|
1527 | ] |
---|
1528 | [setup: add a case to execute "python .../twistd.py" if "twistd" is not found |
---|
1529 | zooko@zooko.com**20090205000620 |
---|
1530 | Ignore-this: 6d472905042d14707bdf5d591d76248e |
---|
1531 | ] |
---|
1532 | [doc: specify Python >= 2.4.2 |
---|
1533 | zooko@zooko.com**20090204213840 |
---|
1534 | Ignore-this: 108c60b69fdb1d0fcb95810703ce415a |
---|
1535 | ] |
---|
1536 | [setup: merge recent patches that change the set of bundled tools in misc/dependencies/ |
---|
1537 | zooko@zooko.com**20090204193222 |
---|
1538 | Ignore-this: 4e5df8a8b5da51d122022dabb40f4b62 |
---|
1539 | ] |
---|
1540 | [setup: bundle new setuptools_trial |
---|
1541 | zooko@zooko.com**20090204192454 |
---|
1542 | Ignore-this: a213fca1fd09ba2c3999dc948dafba98 |
---|
1543 | ] |
---|
1544 | [setup: remove old bundled setuptools_trial |
---|
1545 | zooko@zooko.com**20090204192442 |
---|
1546 | Ignore-this: 18ed85a4dae721d3a25c67c9f5672802 |
---|
1547 | ] |
---|
1548 | [setup: bundle new setuptools_darcs |
---|
1549 | zooko@zooko.com**20090204192429 |
---|
1550 | Ignore-this: 232482cdc411fb200e37f77ca8914760 |
---|
1551 | ] |
---|
1552 | [setup: remove old bundled setuptools_darcs |
---|
1553 | zooko@zooko.com**20090204192418 |
---|
1554 | Ignore-this: 2af1cca4a5ed087120b5373a63600792 |
---|
1555 | ] |
---|
1556 | [roll back the upgrade of the bundled setuptools_trial from 0.5 to 0.5.1 |
---|
1557 | zooko@zooko.com**20090204073836 |
---|
1558 | Ignore-this: a939f9bd569b6db315dc62561edec56f |
---|
1559 | Upgrading setuptools trial in that way leads to a very tricky problem in setuptools's handling of recursive installation of the build-time dependencies of build-time dependencies... |
---|
1560 | |
---|
1561 | rolling back: |
---|
1562 | |
---|
1563 | Tue Feb 3 22:17:18 MST 2009 zooko@zooko.com |
---|
1564 | * setup: bundle new setuptools_trial-0.5.1 |
---|
1565 | |
---|
1566 | A ./misc/dependencies/setuptools_trial-0.5.1.tar |
---|
1567 | Tue Feb 3 22:17:32 MST 2009 zooko@zooko.com |
---|
1568 | * setup: remove old bundled setuptools_trial |
---|
1569 | |
---|
1570 | R ./misc/dependencies/setuptools_trial-0.5.tar |
---|
1571 | ] |
---|
1572 | [setup: remove a couple of horrible work-arounds in setup.py now that we rely on our own toothpick of setuptools which fixes those issues |
---|
1573 | zooko@zooko.com**20090204052405 |
---|
1574 | Ignore-this: a11bc74a5cb879db42c4fe468c375577 |
---|
1575 | also specify that we need our latest revision (11dev) of our toothpick of setuptools |
---|
1576 | also *always* setup_require setuptools_darcs at module import time. Formerly we added setup_require setuptools_darcs only if the PKG-INFO file were not already created. There is some weird, irreproducible bug to do with setuptool_darcs, and I guess that the fact that whether it is required or not depends on that autogenerated file might have something to do with it. Anyway, this is simpler. |
---|
1577 | ] |
---|
1578 | [setup: remove old bundled setuptools_trial |
---|
1579 | zooko@zooko.com**20090204051732 |
---|
1580 | Ignore-this: 3e753f59c15f5787097be1ce21985c83 |
---|
1581 | ] |
---|
1582 | [setup: bundle new setuptools_trial-0.5.1 |
---|
1583 | zooko@zooko.com**20090204051718 |
---|
1584 | Ignore-this: a28f2b48075a9383984da37c4f200121 |
---|
1585 | ] |
---|
1586 | [setup: bundle new setuptools_darcs-1.2.5 |
---|
1587 | zooko@zooko.com**20090204051704 |
---|
1588 | Ignore-this: 7f868649d64c1e4b42a56fab3e32ea13 |
---|
1589 | ] |
---|
1590 | [setup: remove old bundled setuptools_darcs |
---|
1591 | zooko@zooko.com**20090204051640 |
---|
1592 | Ignore-this: f52325aca56c86573f16890c2c4fa4d7 |
---|
1593 | ] |
---|
1594 | [setup: remove bundled darcsver in gzipped format |
---|
1595 | zooko@zooko.com**20090204051628 |
---|
1596 | Ignore-this: d3272f89c0c3275fca83df84f221fe45 |
---|
1597 | ] |
---|
1598 | [setup: bundle darcsver in ungzipped format |
---|
1599 | zooko@zooko.com**20090204051617 |
---|
1600 | Ignore-this: a3a17bcaba2476577c9695911c630408 |
---|
1601 | ] |
---|
1602 | [docs: mention issues using flogtool on Windows |
---|
1603 | zooko@zooko.com**20090204033410 |
---|
1604 | Ignore-this: 6122bcb82eea32d2a936a59d77233743 |
---|
1605 | ] |
---|
1606 | [webapi: add verifycap (spelled 'verify_url') to the t=json output on files and directories. Closes #559. |
---|
1607 | warner@allmydata.com**20090204012248 |
---|
1608 | Ignore-this: 7da755304f6708b4973e4a7c1bcf8a43 |
---|
1609 | ] |
---|
1610 | [setup: stop trying to add specific dirs to site-dirs to work-around setuptools #17 |
---|
1611 | zooko@zooko.com**20090203042352] |
---|
1612 | [setup: require and automatically use setuptools-0.6c11dev (our own toothpick of setuptools) which is bundled |
---|
1613 | zooko@zooko.com**20090203042323] |
---|
1614 | [setup: remove old bundled setuptools-0.6c10dev (our own toothpick of setuptools) |
---|
1615 | zooko@zooko.com**20090203042304] |
---|
1616 | [setup: bundle setuptools-0.6c11dev (our own toothpick of setuptools) |
---|
1617 | zooko@zooko.com**20090203041950 |
---|
1618 | Hopefully this one fixes the issue with easy_install not searching the sys.path for packages that were requested to be installed, (setuptools #17), thus allowing us to do away with the "--site-dirs=" kludges, which are currently breaking some of our buildbots. |
---|
1619 | ] |
---|
1620 | [CLI: tahoe_check: stop escaping the JSON output when using --raw |
---|
1621 | warner@allmydata.com**20090203031232 |
---|
1622 | Ignore-this: c8a450a6e28731c352c0414b59861502 |
---|
1623 | ] |
---|
1624 | [#598: first cut of 'tahoe backup' command: no backupdb, but yes shared-unchanged-directories and Archives/TIMESTAMP and Latest/ |
---|
1625 | warner@allmydata.com**20090203030902 |
---|
1626 | Ignore-this: 650df5631523b63dd138978b8f3aa372 |
---|
1627 | ] |
---|
1628 | [CLI: move node-url -should-end-in-slash code into a common place, so other tools can rely upon it later |
---|
1629 | warner@allmydata.com**20090203030856 |
---|
1630 | Ignore-this: dd94e011d74bcc371f36011a34230649 |
---|
1631 | ] |
---|
1632 | [tahoe_ls: CLI command should return rc=0, not None |
---|
1633 | warner@allmydata.com**20090203030720 |
---|
1634 | Ignore-this: 18993c782cf84edc01e4accb6f8bf31a |
---|
1635 | ] |
---|
1636 | [setup: add site-dirs for Debian and for some (?) Mac OS X |
---|
1637 | zooko@zooko.com**20090203000955 |
---|
1638 | Ignore-this: ebd8b925dbe51bae390f8e8ddb429209 |
---|
1639 | ] |
---|
1640 | [misc/dependencies: update setuptools_trial from 0.4 to 0.5 |
---|
1641 | warner@allmydata.com**20090202233657 |
---|
1642 | Ignore-this: 9e338f824287552100ac92d78d19fe19 |
---|
1643 | ] |
---|
1644 | [.darcs-boringfile: ignore bin/tahoe and bin/tahoe-script.py, since both are now generated |
---|
1645 | warner@allmydata.com**20090202230333 |
---|
1646 | Ignore-this: 92aa108838182076e71f0270bdba5887 |
---|
1647 | ] |
---|
1648 | [Makefile: fix 'clean' target to remove bin/tahoe and bin/tahoe-script.py, since both are now generated |
---|
1649 | warner@allmydata.com**20090202230307 |
---|
1650 | Ignore-this: b01f539cd85dbcbba26616224cad0146 |
---|
1651 | ] |
---|
1652 | [storage: disable test_large_share again: my linux laptop has less than 4 GiB free |
---|
1653 | zooko@zooko.com**20090131041649 |
---|
1654 | Ignore-this: da931a572a88699371057f932106b375 |
---|
1655 | ] |
---|
1656 | [web/directory: add a link from readwrite directories to a read-only version, and fix the 'SI=xxx' header to actually use the storage index, not the writekey |
---|
1657 | warner@allmydata.com**20090131013205 |
---|
1658 | Ignore-this: a1f21f81e6dbf88e591085efd1a57740 |
---|
1659 | ] |
---|
1660 | [uri: add abbrev_si() method, which returns the abbreviated storage index |
---|
1661 | warner@allmydata.com**20090131013110 |
---|
1662 | Ignore-this: bb3d9483570dbe0dc9ecdc1f31d8d79f |
---|
1663 | ] |
---|
1664 | [setup: make sure you use darcsver whenever you are going to run trial |
---|
1665 | zooko@zooko.com**20090130203819 |
---|
1666 | Ignore-this: 2bd632d7540020c0dd893d337163d396 |
---|
1667 | This fixes the bug Brian had where he ran "python ./setup.py trial" and the allmydata-tahoe version number came out as 0.0.0. |
---|
1668 | ] |
---|
1669 | [setup: require setuptools_trial >= 0.5, and delegate to it the job of deciding which Twisted reactor to use for the current platform |
---|
1670 | zooko@zooko.com**20090130043133 |
---|
1671 | Ignore-this: 9e354184d6c989ddf16c7e16a3295ef2 |
---|
1672 | ] |
---|
1673 | [Makefile: use 'setup.py test' for test/quicktest targets (instead of |
---|
1674 | Brian Warner <warner@allmydata.com>**20090130102536 |
---|
1675 | Ignore-this: da07fae8417bc54a610786bc57959c5e |
---|
1676 | 'setup.py trial'). 'setup.py trial' clobbers the tahoe .egg's PKG-INFO |
---|
1677 | "Version:" field (resetting it to 0.0.0), possibly because it isn't invoking |
---|
1678 | the darcsver subcommand that 'setup.py test' does before it runs the 'trial' |
---|
1679 | subcommand. |
---|
1680 | |
---|
1681 | This slows down quicktest by another couple of seconds (see #591) and adds |
---|
1682 | more noise to its output, but without this change, 'make test' and 'make |
---|
1683 | quicktest' fail on test_runner (which spawns bin/tahoe as a subprocess, and |
---|
1684 | with a mangled Version:, the setuptools-based entry point script refuses to |
---|
1685 | recognize our source tree as a usable version of Tahoe). |
---|
1686 | ] |
---|
1687 | [Makefile: remove the obsolete stats-gatherer-run target |
---|
1688 | warner@allmydata.com**20090130010131 |
---|
1689 | Ignore-this: c6f278f8f8fafcd23fb942aa681c842e |
---|
1690 | ] |
---|
1691 | [setup: remove the "build three times in a row" kludge now that #229 is fixed, and spell build "build" instead of "build_tahoe" |
---|
1692 | zooko@zooko.com**20090129195952 |
---|
1693 | Ignore-this: e50ec860284fbc13d37cdc50bc09390a |
---|
1694 | ] |
---|
1695 | [setup: require darcsver >= 1.2.0 and rely exclusively on darcsver to set the version string |
---|
1696 | zooko@zooko.com**20090129185640 |
---|
1697 | Ignore-this: b7ed63526015c0769812f3c6f2342b8c |
---|
1698 | ] |
---|
1699 | [setup: add new bundled darcsver-1.2.0 |
---|
1700 | zooko@zooko.com**20090129185115 |
---|
1701 | Ignore-this: 2e58040639d589205ad79d96d95c076f |
---|
1702 | ] |
---|
1703 | [setup: remove old bundled darcsver-1.1.8 |
---|
1704 | zooko@zooko.com**20090129185102 |
---|
1705 | Ignore-this: f4c735ebb71ec4bf9e4a10bcbe959573 |
---|
1706 | ] |
---|
1707 | [setup: add doc explaining why we set zip_safe=False |
---|
1708 | zooko@zooko.com**20090129174802 |
---|
1709 | Ignore-this: 7dd345f33bd10b9a362980bfb904ca60 |
---|
1710 | ] |
---|
1711 | [setup: setup.cfg aliases get expanded only once, so put everything you want to happen during the "test" step in the alias |
---|
1712 | zooko@zooko.com**20090129165815 |
---|
1713 | Ignore-this: fcf87cf9592410a7b9a5150f2ccd3a13 |
---|
1714 | ] |
---|
1715 | [setup: invoke darcsver whenever doing an sdist |
---|
1716 | zooko@zooko.com**20090129165125 |
---|
1717 | Ignore-this: 88b9bf4fae0303250ada810d351b566 |
---|
1718 | ] |
---|
1719 | [setup: more verbose assertion failure in test_runner |
---|
1720 | zooko@zooko.com**20090129164906 |
---|
1721 | Ignore-this: 2d657efb77e1bc562e628e51c8fb6236 |
---|
1722 | ] |
---|
1723 | [setup: subclass setuptools.Command instead of distutils Command |
---|
1724 | zooko@zooko.com**20090129130058 |
---|
1725 | Ignore-this: 8ef3cbf8cd11a5f3451854aa3298c826 |
---|
1726 | There's almost no difference between them, but let's be consistent try to use the setuptools API as it was intended. |
---|
1727 | ] |
---|
1728 | [setup: temporarily comment-out the horrible kludge to work-around setuptools #17, while I figure out how to solve it better |
---|
1729 | zooko@zooko.com**20090129130000 |
---|
1730 | Ignore-this: 9e42491cfa8042c90a6a96081c00a053 |
---|
1731 | ] |
---|
1732 | [setup: always create a support dir and populate it with a site-packages and add same to the PYTHONPATH, just in case someone is going to do "build", "develop", or "test" or something else which triggers a build |
---|
1733 | zooko@zooko.com**20090129045608 |
---|
1734 | Ignore-this: d3740cd285f1d30a111536863a8e8457 |
---|
1735 | I think there must be a much better solution for this -- probably to fix setuptools #54 and ship our own fork of setuptools and rely on it. |
---|
1736 | ] |
---|
1737 | [setup: if any of "build", "develop", or "test" appear in the sys.argv then that means we'll be doing a develop, so add the workarounds for setuptools #17 in any case |
---|
1738 | zooko@zooko.com**20090129045534 |
---|
1739 | Ignore-this: 38645dfadf3ba7b42370e795b7c90214 |
---|
1740 | I think there must be a much better solution for this -- probably to fix setuptools #17 and ship our own fork of setuptools and rely on it. |
---|
1741 | ] |
---|
1742 | [setup: add metadata indicating compatibility with python 2.6 |
---|
1743 | zooko@zooko.com**20090129002628 |
---|
1744 | Ignore-this: ca9af281354ed62f654d6b15267c8d6b |
---|
1745 | ] |
---|
1746 | [setup: a new improved way to create tahoe executables |
---|
1747 | zooko@zooko.com**20090129000716 |
---|
1748 | Ignore-this: d1b038ab8efb949125d7592ebcceccba |
---|
1749 | Create the 'tahoe-script.py' file under the 'bin' directory. The 'tahoe-script.py' file is exactly the same as the 'tahoe-script.template' script except that the shebang line is rewritten to use our sys.executable for the interpreter. On Windows, create a tahoe.exe will execute it. On non-Windows, make a symlink to it from 'tahoe'. The tahoe.exe will be copied from the setuptools egg's cli.exe and this will work from a zip-safe and non-zip-safe setuptools egg. |
---|
1750 | ] |
---|
1751 | [storage: enable the test of a share larger than 2 GiB; this will probably be too expensive on Mac OS X, but I think it won't be on all the other platforms ; I will probably set it to SkipTest if the sys.platform is Mac after seeing the results of this buildbot run |
---|
1752 | zooko@zooko.com**20090128223312 |
---|
1753 | Ignore-this: 1b08b73b8f9ec4b5f629b734c556f2ed |
---|
1754 | ] |
---|
1755 | [setup: bundle darcsver-1.1.8 |
---|
1756 | zooko@zooko.com**20090128200326 |
---|
1757 | Ignore-this: e2923c03860a45f4a49d79bd51acba77 |
---|
1758 | ] |
---|
1759 | [setup: remove old bundled dependency darcsver-1.1.5 |
---|
1760 | zooko@zooko.com**20090128182012 |
---|
1761 | Ignore-this: db20eeded096231e9d1da397d595c39d |
---|
1762 | ] |
---|
1763 | [CLI: fix examples in tahoe put --help |
---|
1764 | warner@allmydata.com**20090127213909 |
---|
1765 | Ignore-this: 1fe319f70c3791482bb381c06d4a066b |
---|
1766 | ] |
---|
1767 | [trivial: remove unused imports noticed by pyflakes |
---|
1768 | zooko@zooko.com**20090127211148 |
---|
1769 | Ignore-this: aee8bae8aa6f641fe15c5fe947d92f77 |
---|
1770 | ] |
---|
1771 | [setup: fix test_runner to invoke bin/tahoe.exe instead of bin/tahoe if on Windows (this is what happens when a user invokes bin/tahoe on Windows) |
---|
1772 | zooko@zooko.com**20090127203717 |
---|
1773 | Ignore-this: e8795f2d3c70e871839d893bdfec0186 |
---|
1774 | ] |
---|
1775 | [setup: fix test_runner to assert that lines which are output to stderr must end with a punctuation mark (apparently re.search("x$", "x\r\n") does not match. :-() |
---|
1776 | zooko@zooko.com**20090127203505 |
---|
1777 | Ignore-this: d323b364d7cafb4c5847c0cc8346702e |
---|
1778 | ] |
---|
1779 | [setup: fix test_runner.RunNode.test_baddir -- it was left incomplete and broken by a recent patch |
---|
1780 | zooko@zooko.com**20090127203245 |
---|
1781 | Ignore-this: fee5c807945f45bce4919106771914f3 |
---|
1782 | ] |
---|
1783 | [setup: hack the sys.argv to set poll reactor if "python ./setup.py test" in addition to if "python ./setup.py trial"; remove another hack which has been moved setup.cfg; remove setup_requires Twisted since now we actually setup_require setuptools_trial and it install_requires Twisted. |
---|
1784 | zooko@zooko.com**20090127044046 |
---|
1785 | Ignore-this: 38c5afd730024cca63bc84f8ab7100f4 |
---|
1786 | ] |
---|
1787 | [setup: go ahead and check for noise in test_client_no_noise |
---|
1788 | zooko@zooko.com**20090126234616 |
---|
1789 | Ignore-this: dff1a3511fdfad1a61fe73e4277c8981 |
---|
1790 | ] |
---|
1791 | [setup: always run "build" before running "test" |
---|
1792 | zooko@zooko.com**20090126233240 |
---|
1793 | Ignore-this: 8cf76347ba24f02023f1690a470569df |
---|
1794 | ] |
---|
1795 | [setup: add a test for a warning message from importing nevow, marked as TODO, comment-out the assertion of no-noise inside other test_runner tests |
---|
1796 | zooko@zooko.com**20090126233046 |
---|
1797 | Ignore-this: 6b1554ed9268988fd65b8e8aac75ed4e |
---|
1798 | ] |
---|
1799 | [setup: always run build_tahoe before running tests |
---|
1800 | zooko@zooko.com**20090126233024 |
---|
1801 | Ignore-this: da31145fa86a61a307dc5dcc4debc0bb |
---|
1802 | ] |
---|
1803 | [diskwatcher: cache growth results (which take 30s to generate) for 3 minutes, to help munin, which invokes it 6 times in a row every 5 minutes |
---|
1804 | warner@lothar.com**20090125230639] |
---|
1805 | [make streaming-manifest stop doing work after the HTTP connection is dropped |
---|
1806 | warner@allmydata.com**20090124013908] |
---|
1807 | [setup: sys.exit() raises a SystemExit exception on Python 2.4 on Solaris -- fix it so that bin/tahoe doesn't interpret this as its brother having been non-executable |
---|
1808 | zooko@zooko.com**20090124004911 |
---|
1809 | Ignore-this: 117db7036306bbe8b5008d18ba23cb9b |
---|
1810 | ] |
---|
1811 | [setup: find a "bin/tahoe" executable to test based on allmydata.__file__ instead of based on the CWD |
---|
1812 | zooko@zooko.com**20090124003437 |
---|
1813 | Ignore-this: 25282068ce695c12a2b1f23c6fd2b205 |
---|
1814 | This means that the tests still work if you are executing them from a CWD other than the src dir -- *if* the "bin/tahoe" is found at os.path.dirname(os.path.dirname(os.path.dirname(allmydata.__file__))). |
---|
1815 | If no file is found at that location, then just skip the tests of executing the "tahoe" executable, because we don't want to accidentally run those tests against an executable from a different version of tahoe. |
---|
1816 | ] |
---|
1817 | [rollback the #591 fix, since it breaks quicktest entirely |
---|
1818 | warner@allmydata.com**20090123232812] |
---|
1819 | [#509: remove non-streaming 'tahoe manifest' CLI form |
---|
1820 | warner@allmydata.com**20090123230002] |
---|
1821 | [CLI.txt: improve docs on 'tahoe manifest' to cover --verify-cap, --repair-cap, and streaming JSON |
---|
1822 | warner@allmydata.com**20090123225939] |
---|
1823 | [#509 CLI: add 'tahoe manifest --stream' |
---|
1824 | warner@allmydata.com**20090123223321] |
---|
1825 | [#509: test_system.py: add test for streamed-manifest |
---|
1826 | warner@allmydata.com**20090123223247] |
---|
1827 | [test_system: rearrange DeepCheckWebGood to make it easier to add CLI tests |
---|
1828 | warner@allmydata.com**20090123221306] |
---|
1829 | [setup: use "trial" executable instead of the setuptools_trial plugin for "make quicktest" |
---|
1830 | zooko@zooko.com**20090123225830 |
---|
1831 | Ignore-this: f70fb8873e0ac94f0c55e57f0f826334 |
---|
1832 | This is to fix #591 ("make quicktest" could be quicker and less noisy). This means that "make quicktest" won't work unless the user has manually installed Twisted already such that the "trial" executable is on their PATH and the Twisted package is on their PYTHONPATH. This bypasses the behavior of setuptools_trial which builds and checks package dependencies before executing the tests. |
---|
1833 | ] |
---|
1834 | [CLI: remove the '-v' alias for --version-and-path, to free up '-v' for more traditional uses (like --verbose) |
---|
1835 | warner@allmydata.com**20090123212150] |
---|
1836 | [#590: add webish t=stream-manifest |
---|
1837 | warner@allmydata.com**20090123040136] |
---|
1838 | [dirnode: add get_repair_cap() |
---|
1839 | warner@allmydata.com**20090123034449] |
---|
1840 | [dirnode.deep_traverse: fix docstring to describe the correct return value |
---|
1841 | warner@allmydata.com**20090123033950] |
---|
1842 | [filenode: add get_repair_cap(), which uses the read-write filecap for immutable files, and the verifycap for immutable files |
---|
1843 | warner@allmydata.com**20090123033836] |
---|
1844 | [setup: make the bin/tahoe executable exit with the appropriate exit code |
---|
1845 | zooko@zooko.com**20090122215405 |
---|
1846 | Ignore-this: 98fc14e578be45b7c1b527fc7ace73b1 |
---|
1847 | ] |
---|
1848 | [setup: add test that the tests are testing the right source code |
---|
1849 | zooko@zooko.com**20090122215240 |
---|
1850 | Ignore-this: f56c1bc525924154042fefa5d30b04f6 |
---|
1851 | This is a test of #145, and I think that now the code passes this test. |
---|
1852 | ] |
---|
1853 | [trivial: removed unused imports noticed by pyflakes |
---|
1854 | zooko@zooko.com**20090122215213 |
---|
1855 | Ignore-this: a83aa1f27b31a72aed07caa866abfafe |
---|
1856 | ] |
---|
1857 | [setup: change test_runner to invoke "bin/tahoe" in a subprocess instead of executing runner.runner() |
---|
1858 | zooko@zooko.com**20090122213818 |
---|
1859 | Ignore-this: f7ef67adf1b9508617c9a7d305191627 |
---|
1860 | This is necessary because loading allmydata code now depends on PYTHONPATH manipulation which is done in the "bin/tahoe" script. Unfortunately it makes test_runner slower since it launches and waits for many subprocesses. |
---|
1861 | ] |
---|
1862 | [setup: fix "tahoe start" to work on Windows even when a Tahoe base dir hasn't been configured in the Windows registry |
---|
1863 | zooko@zooko.com**20090121184720 |
---|
1864 | Ignore-this: ba147a8f75e8aa9cdc3ee0a56dbf7413 |
---|
1865 | ] |
---|
1866 | [docs: trivial naming change |
---|
1867 | zooko@zooko.com**20090121025042 |
---|
1868 | Ignore-this: a9c2fe6119c43683c6f88662e60de306 |
---|
1869 | ] |
---|
1870 | [rollback the feature of making "ambient upload authority" configurable |
---|
1871 | zooko@zooko.com**20090121024735 |
---|
1872 | Ignore-this: 3fcea1b8179e6278adc360414b527b8b |
---|
1873 | |
---|
1874 | This reverses some, but not all, of the changes that were committed in the following set of patches. |
---|
1875 | |
---|
1876 | rolling back: |
---|
1877 | |
---|
1878 | Sun Jan 18 09:54:30 MST 2009 toby.murray |
---|
1879 | * add 'web.ambient_upload_authority' as a paramater to tahoe.cfg |
---|
1880 | |
---|
1881 | M ./src/allmydata/client.py -1 +3 |
---|
1882 | M ./src/allmydata/test/common.py -7 +9 |
---|
1883 | A ./src/allmydata/test/test_ambient_upload_authority.py |
---|
1884 | M ./src/allmydata/web/root.py +12 |
---|
1885 | M ./src/allmydata/webish.py -1 +4 |
---|
1886 | Sun Jan 18 09:56:08 MST 2009 zooko@zooko.com |
---|
1887 | * trivial: whitespace |
---|
1888 | I ran emacs's "M-x whitespace-cleanup" on the files that Toby's recent patch had touched that had trailing whitespace on some lines. |
---|
1889 | |
---|
1890 | M ./src/allmydata/test/test_ambient_upload_authority.py -9 +8 |
---|
1891 | M ./src/allmydata/web/root.py -2 +1 |
---|
1892 | M ./src/allmydata/webish.py -2 +1 |
---|
1893 | Mon Jan 19 14:16:19 MST 2009 zooko@zooko.com |
---|
1894 | * trivial: remove unused import noticed by pyflakes |
---|
1895 | |
---|
1896 | M ./src/allmydata/test/test_ambient_upload_authority.py -1 |
---|
1897 | Mon Jan 19 21:38:35 MST 2009 toby.murray |
---|
1898 | * doc: describe web.ambient_upload_authority |
---|
1899 | |
---|
1900 | M ./docs/configuration.txt +14 |
---|
1901 | M ./docs/frontends/webapi.txt +11 |
---|
1902 | Mon Jan 19 21:38:57 MST 2009 zooko@zooko.com |
---|
1903 | * doc: add Toby Murray to the CREDITS |
---|
1904 | |
---|
1905 | M ./CREDITS +4 |
---|
1906 | ] |
---|
1907 | [setup: add new bundled setuptools_trial-0.4 |
---|
1908 | zooko@zooko.com**20090120234012 |
---|
1909 | Ignore-this: f260255f657af2792beac9314fdc9ab4 |
---|
1910 | ] |
---|
1911 | [setup: remove old bundled setuptools_trial-0.2 |
---|
1912 | zooko@zooko.com**20090120233918 |
---|
1913 | Ignore-this: 6fce4d5106357981871ba0b8c7fb464e |
---|
1914 | ] |
---|
1915 | [setup: require darcsver always, and not just when we see the string "darcsver" in sys.argv, because the new aliases hack means that the string might not appear in sys.argv |
---|
1916 | zooko@zooko.com**20090120184229 |
---|
1917 | Ignore-this: beecca08d9f59704be7ef1aeca6fd779 |
---|
1918 | ] |
---|
1919 | [setup: fix test_system to require tahoe under its package==distribution name "allmydata-tahoe" instead of its module name "allmydata" |
---|
1920 | zooko@zooko.com**20090120183809 |
---|
1921 | Ignore-this: 51e925c03dbcb9ccf1d7ee34c91c6e72 |
---|
1922 | ] |
---|
1923 | [setup: use setup.cfg aliases to map "setup.py test" to "setup.py trial" and "setup.py build" to "setup.py darcsver --count-all-patches build_tahoe" |
---|
1924 | zooko@zooko.com**20090120183723 |
---|
1925 | Ignore-this: f390676787f4d521c17fbe96fb2cd2a6 |
---|
1926 | Thanks to dpeterson for the suggestion. |
---|
1927 | ] |
---|
1928 | [doc: add Toby Murray to the CREDITS |
---|
1929 | zooko@zooko.com**20090120043857 |
---|
1930 | Ignore-this: eedb7e9d47ddee5cbe189b55251d0859 |
---|
1931 | ] |
---|
1932 | [doc: describe web.ambient_upload_authority |
---|
1933 | toby.murray**20090120043835 |
---|
1934 | Ignore-this: cc1920b2c5d4d587af84c4d251ad0e4b |
---|
1935 | ] |
---|
1936 | [trivial: remove unused import noticed by pyflakes |
---|
1937 | zooko@zooko.com**20090119211619 |
---|
1938 | Ignore-this: 4999f513a5c8d73ed8f79c2b012fea6b |
---|
1939 | ] |
---|
1940 | [setup: simplify install.html a tad |
---|
1941 | zooko@zooko.com**20090119210447 |
---|
1942 | Ignore-this: 529b2f225b3d98ed3bc99a4962e781ee |
---|
1943 | ] |
---|
1944 | [setup: refactor versions-and-paths and use pkg_resources to find them |
---|
1945 | zooko@zooko.com**20090119210435 |
---|
1946 | Ignore-this: b368d8ede7531f1d79ee3c2c1a2cc116 |
---|
1947 | Using pkg_resources is probably better if it works -- zope.interface doesn't have a __version__ attribute that we can query, but pkg_resources knows zope.interface's version number, for one thing. |
---|
1948 | This code falls back to the old way -- looking at the __version__ attributes and __file__ attributes -- if the pkg_resources way doesn't answer. |
---|
1949 | Note that this patch also changes the capitalization of "Nevow", "Twisted", and "pyOpenSSL", and the spelling of "allmydata-tahoe". These changes are not frivolous: they are reflecting the fact that we are naming Python packages (technically called Python "distributions") instead of Python modules (technically and confusingly called Python "packages") here. The package ("distribution") is named "allmydata-tahoe". The module ("package") is named "allmydata". |
---|
1950 | ] |
---|
1951 | [setup: undo (for the second time) the use of the --multi-version feature |
---|
1952 | zooko@zooko.com**20090119205352 |
---|
1953 | Ignore-this: 80bdbb488c3e4fb042bcd968a9bc120a |
---|
1954 | When this feature is turned on, then setuptools doesn't create easy-install.pth, setuptools.pth, or site.py in the target site-packages dir. I don't know why not and we should probably open a ticket on the setuptools tracker and/or hack setuptools to create those files anyway. But for now (for the Tahoe-1.3.0 release), we're going to leave --multi-version mode off and require users to manually uninstall any packages which are too old and thus conflict with our newer dependencies. |
---|
1955 | |
---|
1956 | ] |
---|
1957 | [trivial: whitespace |
---|
1958 | zooko@zooko.com**20090118165815 |
---|
1959 | Ignore-this: 6f97042f221da3ad931c6b545edc6a30 |
---|
1960 | Ran "M-x whitespace-cleanup" on files that Toby's recent patch touched, even though they didn't have trailing whitespace. |
---|
1961 | ] |
---|
1962 | [trivial: whitespace |
---|
1963 | zooko@zooko.com**20090118165608 |
---|
1964 | Ignore-this: 8539e7e73e43f459f7b82e84dface95c |
---|
1965 | I ran emacs's "M-x whitespace-cleanup" on the files that Toby's recent patch had touched that had trailing whitespace on some lines. |
---|
1966 | ] |
---|
1967 | [trivial: whitespace |
---|
1968 | zooko@zooko.com**20090118165458 |
---|
1969 | Ignore-this: dedfb44829ea73f0e39f582f16112506 |
---|
1970 | ] |
---|
1971 | [add 'web.ambient_upload_authority' as a paramater to tahoe.cfg |
---|
1972 | toby.murray**20090118165430 |
---|
1973 | Ignore-this: 2c6ed484009c03fe9db1bb6eb67500ff |
---|
1974 | ] |
---|
1975 | [doc: add Larry Hosken to CREDITS |
---|
1976 | zooko@zooko.com**20090117164943 |
---|
1977 | Ignore-this: f2433a296ab2485872d22538bd0f64b2 |
---|
1978 | ] |
---|
1979 | [run build_tahoe command with trial commmand |
---|
1980 | cgalvan@mail.utexas.edu**20090117000047] |
---|
1981 | [adding multi-version support |
---|
1982 | cgalvan@mail.utexas.edu**20090116230326] |
---|
1983 | [setup: addition of setuptools_trial egg to the base dir is boring from the point of view of revision control |
---|
1984 | zooko@zooko.com**20090116200554 |
---|
1985 | Ignore-this: 63dd48c06356f638ca85c5e4a25457b1 |
---|
1986 | ] |
---|
1987 | [prevent --site-dirs from being passed to the 'install' command |
---|
1988 | cgalvan@mail.utexas.edu**20090116195732] |
---|
1989 | [add option to show version and path to the tahoe executable |
---|
1990 | cgalvan@mail.utexas.edu**20090116184751] |
---|
1991 | [More lossmodel work, on repair. |
---|
1992 | Shawn Willden <shawn-tahoe@willden.org>**20090116025648] |
---|
1993 | [setup: put back configuration of the PYTHONPATH which is necessary to build the Windows packages |
---|
1994 | zooko@zooko.com**20090115023751 |
---|
1995 | Ignore-this: 936b4d58babb84d1766695ad8c61ced7 |
---|
1996 | ] |
---|
1997 | [node.py: use NODEDIR/tmp for the 'tempfile' module's temporary directory, so webapi upload tempfiles are put there instead of /tmp . You can set it to something else by setting [node]tempdir in tahoe.cfg |
---|
1998 | warner@allmydata.com**20090115020015] |
---|
1999 | [web/operations: undo the disable-ophandle-expiration change that inadvertently got included in zooko's recent 'rename wapi.txt to webapi.txt' patch, causing test failures |
---|
2000 | warner@allmydata.com**20090115011459] |
---|
2001 | [Loss model work (temp1) |
---|
2002 | Shawn Willden <shawn@willden.org>**20090115030058] |
---|
2003 | [cli: tests: skip symlink test if there is no os.symlink |
---|
2004 | zooko@zooko.com**20090115001010 |
---|
2005 | Ignore-this: 4987fea4fe070c2dd5ff75401fbf89e1 |
---|
2006 | ] |
---|
2007 | [webapi.txt: explain POST /uri/?t=upload, thanks to Toby Murray for the catch |
---|
2008 | warner@allmydata.com**20090115000803] |
---|
2009 | [mutable: move recent operation history management code (MutableWatcher) into history.py, have History provide stats |
---|
2010 | warner@allmydata.com**20090114233620] |
---|
2011 | [download: tiny cleanup of history code |
---|
2012 | warner@allmydata.com**20090114224151] |
---|
2013 | [upload: move upload history into History object |
---|
2014 | warner@allmydata.com**20090114224106] |
---|
2015 | [immutable/download.py move recent-downloads history out of Downloader and into a separate class. upload/etc will follow soon. |
---|
2016 | warner@allmydata.com**20090114221424] |
---|
2017 | [docs: rename wapi.txt to webapi.txt |
---|
2018 | zooko@zooko.com**20090114195348 |
---|
2019 | Ignore-this: 419685f2807714bab4069fbaa3a02c1c |
---|
2020 | Because Brian argues that the file contains a description of the wui as well as of the wapi, and because the name "webapi.txt" might be more obvious to the untrained eye. |
---|
2021 | ] |
---|
2022 | [setup: configure setup.cfg to point setuptools at the index.html page instead of straight at the tahoe directory listing |
---|
2023 | zooko@zooko.com**20090114185023 |
---|
2024 | Ignore-this: 71e06cbbd91397f3e12109e48d3f8a81 |
---|
2025 | This is necessary, because if setuptools looks at the directory listing, then it follows the link named "More Info" in attempt to download the file, and this fails. |
---|
2026 | ] |
---|
2027 | [setup: fix previous patch to set reactor to poll reactor on linux or cygwin |
---|
2028 | zooko@zooko.com**20090114164022 |
---|
2029 | Ignore-this: 9e37242ca3cfd47c6f69ee2438ec743b |
---|
2030 | ] |
---|
2031 | [setup: use poll reactor for trial if on linux2 or cygwin |
---|
2032 | zooko@zooko.com**20090114151546 |
---|
2033 | Ignore-this: f6c4b45745527811c9f72448d74649f5 |
---|
2034 | ] |
---|
2035 | [docs: rename frontends/webapi.txt to frontends/wapi.txt |
---|
2036 | zooko@zooko.com**20090114025143 |
---|
2037 | Ignore-this: c35acd8dc7c1106ca31104b6db43e5ad |
---|
2038 | rename CLI.txt to frontends/CLI.txt |
---|
2039 | change a few mentions of "webapi" to "wapi" |
---|
2040 | fixes #582 |
---|
2041 | ] |
---|
2042 | [Statistics module |
---|
2043 | Shawn Willden <shawn-tahoe@willden.org>**20090114021235 |
---|
2044 | |
---|
2045 | Added a statistics module for calculating various facets of |
---|
2046 | share survival statistics. |
---|
2047 | ] |
---|
2048 | [upload: use WriteBucketProxy_v2 when uploading a large file (with shares larger than 4GiB). This finally closes #346. I think we can now handle immutable files up to 48EiB. |
---|
2049 | warner@allmydata.com**20090113021442] |
---|
2050 | [deep-check-and-repair: improve results and their HTML representation |
---|
2051 | warner@allmydata.com**20090113005619] |
---|
2052 | [test_repairer.py: hush pyflakes: remove duplicate/shadowed function name, by using the earlier definition (which is identical) |
---|
2053 | warner@allmydata.com**20090112214509] |
---|
2054 | [hush pyflakes by removing unused imports |
---|
2055 | warner@allmydata.com**20090112214120] |
---|
2056 | [immutable repairer |
---|
2057 | zooko@zooko.com**20090112170022 |
---|
2058 | Ignore-this: f17cb07b15a554b31fc5203cf4f64d81 |
---|
2059 | This implements an immutable repairer by marrying a CiphertextDownloader to a CHKUploader. It extends the IDownloadTarget interface so that the downloader can provide some metadata that the uploader requires. |
---|
2060 | The processing is incremental -- it uploads the first segments before it finishes downloading the whole file. This is necessary so that you can repair large files without running out of RAM or using a temporary file on the repairer. |
---|
2061 | It requires only a verifycap, not a readcap. That is: it doesn't need or use the decryption key, only the integrity check codes. |
---|
2062 | There are several tests marked TODO and several instances of XXX in the source code. I intend to open tickets to document further improvements to functionality and testing, but the current version is probably good enough for Tahoe-1.3.0. |
---|
2063 | ] |
---|
2064 | [util: dictutil: add DictOfSets.union(key, values) and DictOfSets.update(otherdictofsets) |
---|
2065 | zooko@zooko.com**20090112165539 |
---|
2066 | Ignore-this: 84fb8a2793238b077a7a71aa03ae9d2 |
---|
2067 | ] |
---|
2068 | [setup: update doc in setup.cfg |
---|
2069 | zooko@zooko.com**20090111151319 |
---|
2070 | Ignore-this: 296bfa1b9dbdac876f2d2c8e4e2b1294 |
---|
2071 | ] |
---|
2072 | [setup: Point setuptools at a directory on the allmydata.org test grid to find dependencies. |
---|
2073 | zooko@zooko.com**20090111151126 |
---|
2074 | Ignore-this: f5b6a8f5ce3ba08fea2573b5c582aba8 |
---|
2075 | Don't include an unrouteable IP address in find_links (fixes #574). |
---|
2076 | ] |
---|
2077 | [immutable: separate tests of immutable upload/download from tests of immutable checking/repair |
---|
2078 | zooko@zooko.com**20090110210739 |
---|
2079 | Ignore-this: 9e668609d797ec86a618ed52602c111d |
---|
2080 | ] |
---|
2081 | [trivial: minor changes to in-line comments -- mark plaintext-hash-tree as obsolete |
---|
2082 | zooko@zooko.com**20090110205601 |
---|
2083 | Ignore-this: df286154e1acde469f28e9bd00bb1068 |
---|
2084 | ] |
---|
2085 | [immutable: make the web display of upload results more human-friendly, like they were before my recent change to the meaning of the "sharemap" |
---|
2086 | zooko@zooko.com**20090110200209 |
---|
2087 | Ignore-this: 527d067334f982cb2d3e185f72272f60 |
---|
2088 | ] |
---|
2089 | [immutable: fix edit-o in interfaces.py documentation introduced in recent patch |
---|
2090 | zooko@zooko.com**20090110185408 |
---|
2091 | Ignore-this: f255d09aa96907c402583fc182379391 |
---|
2092 | ] |
---|
2093 | [immutable: redefine the "sharemap" member of the upload results to be a map from shnum to set of serverids |
---|
2094 | zooko@zooko.com**20090110174623 |
---|
2095 | Ignore-this: 10300a2333605bc26c4ee9c7ab7dae10 |
---|
2096 | It used to be a map from shnum to a string saying "placed this share on XYZ server". The new definition is more in keeping with the "sharemap" object that results from immutable file checking and repair, and it is more useful to the repairer, which is a consumer of immutable upload results. |
---|
2097 | ] |
---|
2098 | [naming: finish renaming "CheckerResults" to "CheckResults" |
---|
2099 | zooko@zooko.com**20090110000052 |
---|
2100 | Ignore-this: b01bd1d066d56eff3a6322e0c3a9fbdc |
---|
2101 | ] |
---|
2102 | [storage.py : replace 4294967295 with 2**32-1: python does constant folding, I measured this statement as taking 50ns, versus the 400ns for the call to min(), or the 9us required for the 'assert not os.path.exists' syscall |
---|
2103 | warner@allmydata.com**20090110015222] |
---|
2104 | [storage.py: announce a maximum-immutable-share-size based upon a 'df' of the disk. Fixes #569, and this should be the last requirement for #346 (remove 12GiB filesize limit) |
---|
2105 | warner@allmydata.com**20090110013736] |
---|
2106 | [set bin/tahoe executable permissions and leave build_tahoe in sys.argv |
---|
2107 | cgalvan@mail.utexas.edu**20090109210640] |
---|
2108 | [setup: merge relaxation of the version of setuptools that we require at runtime with an indentation change |
---|
2109 | zooko@zooko.com**20090109190949 |
---|
2110 | Ignore-this: eb396c71563b9917c8a485efc5bebb36 |
---|
2111 | ] |
---|
2112 | [setup: remove custom Trial class inside our setup.py and use the setuptools_trial plugin |
---|
2113 | zooko@zooko.com**20081205232207 |
---|
2114 | Ignore-this: e0f68169e8ac1b5a54b796e8905c7b80 |
---|
2115 | ] |
---|
2116 | [setup: we require pywin32 if building on Windows (plus some formatting and comment fixes) |
---|
2117 | zooko@zooko.com**20081205231911 |
---|
2118 | Ignore-this: c1d1966cfe458a6380bfd5dce09010ff |
---|
2119 | ] |
---|
2120 | [fix bin/tahoe executable for Windows |
---|
2121 | cgalvan@mail.utexas.edu**20090109184222] |
---|
2122 | [use subprocess.call instead of os.execve in bin/tahoe |
---|
2123 | cgalvan@mail.utexas.edu**20090109180300] |
---|
2124 | [setup: attempt to remove the custom setuptools-ish logic in setup.py -- the result works on my Windows box but doesn't yield a working ./bin/tahoe on Windows, and hasn't been tested yet on other platforms |
---|
2125 | zooko@zooko.com**20081205233054 |
---|
2126 | Ignore-this: 843e7514870d7a4e708646acaa7c9699 |
---|
2127 | ] |
---|
2128 | [setup: integrate the bundled setuptools_trial plugin with Chris Galvan's patch to use that plugin |
---|
2129 | zooko@zooko.com**20081201174804 |
---|
2130 | Ignore-this: 5d03e936cf45f67a39f993704024788c |
---|
2131 | ] |
---|
2132 | [use_setuptools_trial.patch |
---|
2133 | cgalvan@mail.utexas.edu**20081121205759] |
---|
2134 | [setup: bundle setuptools_trial in misc/dependencies/ |
---|
2135 | zooko@zooko.com**20081201174438 |
---|
2136 | Ignore-this: f13a4a1af648f9ab9b3b3438cf94053f |
---|
2137 | ] |
---|
2138 | [test_helper: hush pyflakes by avoiding use of 'uri' as a variable, since it shadows an import of the same name |
---|
2139 | warner@allmydata.com**20090109025941] |
---|
2140 | [immutable/checker: include a summary (with 'Healthy' or 'Not Healthy' and a count of shares) in the checker results |
---|
2141 | warner@allmydata.com**20090109020145] |
---|
2142 | [webapi/deep-manifest t=JSON: don't return the (large) manifest/SI/verifycap lists unless the operation has completed, to avoid the considerable CPU+memory cost of creating the JSON (for 330k dirnodes, it could take two minutes to generate 275MB of JSON). They must be paid eventually, but not on every poll |
---|
2143 | warner@allmydata.com**20090109015932] |
---|
2144 | [dirnode deep-traversal: remove use of Limiter, stick with strict depth-first-traversal, to reduce memory usage during very large (300k+ dirnode) traversals |
---|
2145 | warner@allmydata.com**20090109014116] |
---|
2146 | [immutable: add a monitor API to CiphertextDownloader with which to tell it to stop its work |
---|
2147 | zooko@zooko.com**20090108204215 |
---|
2148 | Ignore-this: f96fc150fa68fc2cec46c943171a5d48 |
---|
2149 | ] |
---|
2150 | [naming: Rename a few things which I touched or changed in the recent patch to download-without-decrypting. |
---|
2151 | zooko@zooko.com**20090108181307 |
---|
2152 | Ignore-this: 495ce8d8854c5db5a09b35b856809fba |
---|
2153 | Rename "downloadable" to "target". |
---|
2154 | Rename "u" to "v" in FileDownloader.__init__(). |
---|
2155 | Rename "_uri" to "_verifycap" in FileDownloader. |
---|
2156 | Rename "_downloadable" to "_target" in FileDownloader. |
---|
2157 | Rename "FileDownloader" to "CiphertextDownloader". |
---|
2158 | ] |
---|
2159 | [immutable: refactor download to do only download-and-decode, not decryption |
---|
2160 | zooko@zooko.com**20090108175349 |
---|
2161 | Ignore-this: 1e4f26f6390a67aa5714650017c4dca1 |
---|
2162 | FileDownloader takes a verify cap and produces ciphertext, instead of taking a read cap and producing plaintext. |
---|
2163 | FileDownloader does all integrity checking including the mandatory ciphertext hash tree and the optional ciphertext flat hash, rather than expecting its target to do some of that checking. |
---|
2164 | Rename immutable.download.Output to immutable.download.DecryptingOutput. An instance of DecryptingOutput can be passed to FileDownloader to use as the latter's target. Text pushed to the DecryptingOutput is decrypted and then pushed to *its* target. |
---|
2165 | DecryptingOutput satisfies the IConsumer interface, and if its target also satisfies IConsumer, then it forwards and pause/unpause signals to its producer (which is the FileDownloader). |
---|
2166 | This patch also changes some logging code to use the new logging mixin class. |
---|
2167 | Check integrity of a segment and decrypt the segment one block-sized buffer at a time instead of copying the buffers together into one segment-sized buffer (reduces peak memory usage, I think, and is probably a tad faster/less CPU, depending on your encoding parameters). |
---|
2168 | Refactor FileDownloader so that processing of segments and of tail-segment share as much code is possible. |
---|
2169 | FileDownloader and FileNode take caps as instances of URI (Python objects), not as strings. |
---|
2170 | ] |
---|
2171 | [trivial: tiny changes to test code |
---|
2172 | zooko@zooko.com**20090108172048 |
---|
2173 | Ignore-this: b1a434cd40a87c3d027fef4ce609d25c |
---|
2174 | ] |
---|
2175 | [immutable: Make more parts of download use logging mixins and know what their "parent msg id" is. |
---|
2176 | zooko@zooko.com**20090108172530 |
---|
2177 | Ignore-this: a4296b5f9b75933d644fd222e1fba079 |
---|
2178 | ] |
---|
2179 | [trivial: M-x whitespace-cleanup on src/immutable/download.py |
---|
2180 | zooko@zooko.com**20090108164901 |
---|
2181 | Ignore-this: bb62daf511e41a69860be657cde8df04 |
---|
2182 | ] |
---|
2183 | [immutable: ValidatedExtendedURIProxy computes and stores the tail data size as a convenience to its caller. |
---|
2184 | zooko@zooko.com**20090108164139 |
---|
2185 | Ignore-this: 75c561d73b17418775faafa60fbbd45b |
---|
2186 | The "tail data size" is how many of the bytes of the tail segment are data (as opposed to padding). |
---|
2187 | ] |
---|
2188 | [immutable: define a new interface IImmutableFileURI and declare that CHKFileURI and LiteralFileURI provide it |
---|
2189 | zooko@zooko.com**20090107182451 |
---|
2190 | Ignore-this: 12c256a0d20655cd73739d45fff0d4d8 |
---|
2191 | ] |
---|
2192 | [util: log: allow empty msgs (because downloader is using the "format" alternative with no "msg" argument) |
---|
2193 | zooko@zooko.com**20090107175411 |
---|
2194 | Ignore-this: 832c333bf027a30a2fcf96e462297ac5 |
---|
2195 | ] |
---|
2196 | ['tahoe cp -r', upon encountering a dangling symlink, would assert out. |
---|
2197 | Larry Hosken <tahoe at lahosken.san-francisco.ca.us>**20090108055114 |
---|
2198 | Ignore-this: 46e75845339faa69ffb3addb7ce74f28 |
---|
2199 | This was somewhat sad; the assertion didn't say what path caused the |
---|
2200 | error, what went wrong. So... silently skip over things that are |
---|
2201 | neither dirs nor files. |
---|
2202 | ] |
---|
2203 | [immutable: fix error in validation of ciphertext hash tree and add test for that code |
---|
2204 | zooko@zooko.com**20090108054012 |
---|
2205 | Ignore-this: 3241ce66373ebc514ae6e6f086f6daa2 |
---|
2206 | pyflakes pointed out to me that I had committed some code that is untested, since it uses an undefined name. This patch exercises that code -- the validation of the ciphertext hash tree -- by corrupting some of the share files in a very specific way, and also fixes the bug. |
---|
2207 | ] |
---|
2208 | [immutable: do not catch arbitrary exceptions/failures from the attempt to get a crypttext hash tree -- catch only ServerFailure, IntegrityCheckReject, LayoutInvalid, ShareVersionIncompatible, and DeadReferenceError |
---|
2209 | zooko@zooko.com**20090108042551 |
---|
2210 | Ignore-this: 35f208af1b9f8603df25ed69047360d1 |
---|
2211 | Once again I inserted a bug into the code, and once again it was hidden by something catching arbitrary exception/failure and assuming that it means the server failed to provide valid data. |
---|
2212 | ] |
---|
2213 | [download: make sure you really get all the crypttext hashes |
---|
2214 | zooko@zooko.com**20090108022638 |
---|
2215 | Ignore-this: c1d5ebb048e81f706b9098e26876e040 |
---|
2216 | We were not making sure that we really got all the crypttext hashes during download. If a server were to return less than the complete set of crypttext hashes, then our subsequent attempt to verify the correctness of the ciphertext would fail. (And it wouldn't be obvious without very careful debugging why it had failed.) |
---|
2217 | This patch makes it so that you keep trying to get ciphertext hashes until you have a full set or you run out of servers to ask. |
---|
2218 | ] |
---|
2219 | [util: deferredutil: undo my recent patch to use our own implementation of gatherResults |
---|
2220 | zooko@zooko.com**20090107170005 |
---|
2221 | Ignore-this: c8c5421b47ab5a83c7ced8b08add80e8 |
---|
2222 | It seems to cause lots of failures on some builders. |
---|
2223 | ] |
---|
2224 | [util: deferredutil: implement our own gatherResults instead of using Twisted's |
---|
2225 | zooko@zooko.com**20090107163207 |
---|
2226 | Ignore-this: aa676b2b6cfb73bbca15827cb7c0a43e |
---|
2227 | Because we want to maintain backwards compatibility to Twisted 2.4.0. |
---|
2228 | ] |
---|
2229 | [trivial: M-x whitespace-cleanup |
---|
2230 | zooko@zooko.com**20090107162528 |
---|
2231 | Ignore-this: 69bef4518477ca875785f0e0b8ab0000 |
---|
2232 | ] |
---|
2233 | [util: deferredutil: add basic test for deferredutil.gatherResults |
---|
2234 | zooko@zooko.com**20090107141342 |
---|
2235 | Ignore-this: ad457053c8ee3a04921fdcdb639c03d |
---|
2236 | Also I checked and Twisted 2.4.0 supports .subFailure and the other parts of the API that we require. |
---|
2237 | ] |
---|
2238 | [trivial: fix redefinition of name "log" in imports (pyflakes) |
---|
2239 | zooko@zooko.com**20090107040829 |
---|
2240 | Ignore-this: cdcf7ff84082323ebc022b186127e678 |
---|
2241 | ] |
---|
2242 | [immutable: refactor uploader to do just encoding-and-uploading, not encryption |
---|
2243 | zooko@zooko.com**20090107034822 |
---|
2244 | Ignore-this: 681f3ad6827a93f1431d6e3f818840a9 |
---|
2245 | This makes Uploader take an EncryptedUploadable object instead of an Uploadable object. I also changed it to return a verify cap instead of a tuple of the bits of data that one finds in a verify cap. |
---|
2246 | This will facilitate hooking together an Uploader and a Downloader to make a Repairer. |
---|
2247 | Also move offloaded.py into src/allmydata/immutable/. |
---|
2248 | ] |
---|
2249 | [trivial: whitespace and docstring tidyups |
---|
2250 | zooko@zooko.com**20090107034104 |
---|
2251 | Ignore-this: 34db3eec599efbb2088a87333abfb797 |
---|
2252 | ] |
---|
2253 | [storage.py: explain what this large and hard-to-recognize 4294967295 number is |
---|
2254 | warner@allmydata.com**20090106195721] |
---|
2255 | [rename "checker results" to "check results", because it is more parallel to "check-and-repair results" |
---|
2256 | zooko@zooko.com**20090106193703 |
---|
2257 | Ignore-this: d310e3d7f42a76df68536650c996aa49 |
---|
2258 | ] |
---|
2259 | [immutable: tests: verifier doesn't always catch corrupted share hashes |
---|
2260 | zooko@zooko.com**20090106190449 |
---|
2261 | Ignore-this: a9be83b8e2350ae9af808476015fe0e4 |
---|
2262 | Maybe it already got one of the corrupted hashes from a different server and it doesn't double-check that the hash from every server is correct. Or another problem. But in any case I'm marking this as TODO because an even better (more picky) verifier is less urgent than repairer. |
---|
2263 | ] |
---|
2264 | [immutable: fix the writing of share data size into share file in case the share file is used by a < v1.3.0 storage server |
---|
2265 | zooko@zooko.com**20090106182404 |
---|
2266 | Ignore-this: 7d6025aba05fe8140bb712e71e89f1ba |
---|
2267 | Brian noticed that the constant was wrong, and in fixing that I noticed that we should be saturating instead of modding. |
---|
2268 | This code would never matter unless a server downgraded or a share migrated from Tahoe >= v1.3.0 to Tahoe < v1.3.0. Even in that case, this bug would never matter unless the share size were exactly 4,294,967,296 bytes long. |
---|
2269 | Brian, for good reason, wanted this to be spelled "2**32" instead of "4294967296", but I couldn't stand to see a couple of more Python bytecodes interpreted in the middle of a core, frequent operation on the server like immutable share creation. |
---|
2270 | |
---|
2271 | ] |
---|
2272 | [trivial: whitespace cleanup |
---|
2273 | zooko@zooko.com**20090106172058 |
---|
2274 | Ignore-this: 50ee40d42cc8d8f39d2f8ed15f6790d4 |
---|
2275 | ] |
---|
2276 | [util: base32: require str-not-unicode inputs -- effectively rolls back [3306] and [3307] |
---|
2277 | zooko@zooko.com**20090106164122 |
---|
2278 | Ignore-this: 1030c2d37e636d194c99ec99707ae86f |
---|
2279 | ] |
---|
2280 | [trivial: fix a bunch of pyflakes complaints |
---|
2281 | zooko@zooko.com**20090106140054 |
---|
2282 | Ignore-this: 9a515a237248a148bcf8db68f70566d4 |
---|
2283 | ] |
---|
2284 | [cli: make startstop_node wait 40 seconds instead of 20 for a process to go away after we signalled it to go away, before emitting a warning |
---|
2285 | zooko@zooko.com**20090106135106 |
---|
2286 | Ignore-this: 2da4b794b6a7e2e2ad6904cce61b0f10 |
---|
2287 | Because the unit tests on the VirtualZooko? buildslave failed when it took 31 seconds for a process to go away. |
---|
2288 | Perhaps getting warning message after only 5 seconds instead of 40 seconds is desirable, and we should change the unit tests and set this back to 5, but I don't know exactly how to change the unit tests. Perhaps match this particular warning message about the shutdown taking a while and allow the code under test to pass if the only stderr that it emits is this warning. |
---|
2289 | ] |
---|
2290 | [immutable: new checker and verifier |
---|
2291 | zooko@zooko.com**20090106002818 |
---|
2292 | Ignore-this: 65441f8fdf0db8bcedeeb3fcbbd07d12 |
---|
2293 | New checker and verifier use the new download class. They are robust against various sorts of failures or corruption. They return detailed results explaining what they learned about your immutable files. Some grotesque sorts of corruption are not properly handled yet, and those ones are marked as TODO or commented-out in the unit tests. |
---|
2294 | There is also a repairer module in this patch with the beginnings of a repairer in it. That repairer is mostly just the interface to the outside world -- the core operation of actually reconstructing the missing data blocks and uploading them is not in there yet. |
---|
2295 | This patch also refactors the unit tests in test_immutable so that the handling of each kind of corruption is reported as passing or failing separately, can be separately TODO'ified, etc. The unit tests are also improved in various ways to require more of the code under test or to stop requiring unreasonable things of it. :-) |
---|
2296 | |
---|
2297 | ] |
---|
2298 | [trivial: fix inline comment in test code |
---|
2299 | zooko@zooko.com**20090105235342 |
---|
2300 | Ignore-this: b3d79b9644052e6402b2f7d0125f678a |
---|
2301 | ] |
---|
2302 | [immutable: handle another form of share corruption with LayoutInvalid exception instead of AssertionError |
---|
2303 | zooko@zooko.com**20090105234645 |
---|
2304 | Ignore-this: fee5f6572efca5435ef54ed32552ca9d |
---|
2305 | ] |
---|
2306 | [trivial: remove unused import (pyflakes) |
---|
2307 | zooko@zooko.com**20090105233120 |
---|
2308 | Ignore-this: 47b6989ffa5b3a5733e45e8feb507959 |
---|
2309 | ] |
---|
2310 | [immutable: skip the test of large files, because that is too hard on the host if it doesn't efficiently handle sparse files |
---|
2311 | zooko@zooko.com**20090105230727 |
---|
2312 | Ignore-this: 7d35a6cdb1ea6be2adf0e6dacefe01a7 |
---|
2313 | ] |
---|
2314 | [immutable: raise a LayoutInvalid exception instead of an AssertionError if the share is corrupted so that the sharehashtree is the wrong size |
---|
2315 | zooko@zooko.com**20090105200114 |
---|
2316 | Ignore-this: b63d028c44dcd04ef424d6460b46e349 |
---|
2317 | ] |
---|
2318 | [immutable: stop reading past the end of the sharefile in the process of optimizing download -- Tahoe storage servers < 1.3.0 return an error if you read past the end of the share file |
---|
2319 | zooko@zooko.com**20090105194057 |
---|
2320 | Ignore-this: 365e1f199235a55c0354ba6cb2b05a04 |
---|
2321 | ] |
---|
2322 | [immutable: tidy up the notification of waiters for ReadBucketProxy |
---|
2323 | zooko@zooko.com**20090105193522 |
---|
2324 | Ignore-this: 6b93478dae3d627b9d3cbdd254afbe7e |
---|
2325 | ] |
---|
2326 | [immutable: refactor downloader to be more reusable for checker/verifier/repairer (and better) |
---|
2327 | zooko@zooko.com**20090105155145 |
---|
2328 | Ignore-this: 29a22b1eb4cb530d4b69c12aa0d00740 |
---|
2329 | |
---|
2330 | The code for validating the share hash tree and the block hash tree has been rewritten to make sure it handles all cases, to share metadata about the file (such as the share hash tree, block hash trees, and UEB) among different share downloads, and not to require hashes to be stored on the server unnecessarily, such as the roots of the block hash trees (not needed since they are also the leaves of the share hash tree), and the root of the share hash tree (not needed since it is also included in the UEB). It also passes the latest tests including handling corrupted shares well. |
---|
2331 | |
---|
2332 | ValidatedReadBucketProxy takes a share_hash_tree argument to its constructor, which is a reference to a share hash tree shared by all ValidatedReadBucketProxies for that immutable file download. |
---|
2333 | |
---|
2334 | ValidatedReadBucketProxy requires the block_size and share_size to be provided in its constructor, and it then uses those to compute the offsets and lengths of blocks when it needs them, instead of reading those values out of the share. The user of ValidatedReadBucketProxy therefore has to have first used a ValidatedExtendedURIProxy to compute those two values from the validated contents of the URI. This is pleasingly simplifies safety analysis: the client knows which span of bytes corresponds to a given block from the validated URI data, rather than from the unvalidated data stored on the storage server. It also simplifies unit testing of verifier/repairer, because now it doesn't care about the contents of the "share size" and "block size" fields in the share. It does not relieve the need for share data v2 layout, because we still need to store and retrieve the offsets of the fields which come after the share data, therefore we still need to use share data v2 with its 8-byte fields if we want to store share data larger than about 2^32. |
---|
2335 | |
---|
2336 | Specify which subset of the block hashes and share hashes you need while downloading a particular share. In the future this will hopefully be used to fetch only a subset, for network efficiency, but currently all of them are fetched, regardless of which subset you specify. |
---|
2337 | |
---|
2338 | ReadBucketProxy hides the question of whether it has "started" or not (sent a request to the server to get metadata) from its user. |
---|
2339 | |
---|
2340 | Download is optimized to do as few roundtrips and as few requests as possible, hopefully speeding up download a bit. |
---|
2341 | |
---|
2342 | ] |
---|
2343 | [util: add gatherResults which is a deferred-list-like thing that doesn't wrap failures in a FirstError |
---|
2344 | zooko@zooko.com**20090104165202 |
---|
2345 | Ignore-this: a284fb8ab8a00a39416a67dc5d9a451e |
---|
2346 | ] |
---|
2347 | [immutable: fix think-o in previous patch which caused all reads to return "", and also optimize by not opening the file when the answer is going to be "" |
---|
2348 | zooko@zooko.com**20090103200245 |
---|
2349 | Ignore-this: 8ac4d0b0399cd74e8a424ffbcf3d9eb9 |
---|
2350 | ] |
---|
2351 | [immutable: when storage server reads from immutable share, don't try to read past the end of the file (Python allocates space according to the amount of data requested, so if there is corruption and that number is huge it will do a huge memory allocation) |
---|
2352 | zooko@zooko.com**20090103192222 |
---|
2353 | Ignore-this: e533a65d74437676d5116369fd7c663b |
---|
2354 | ] |
---|
2355 | [immutable: mark a failing download test as "todo", because I think it is revealing a limitation of the current downloader's handling of corrupted shares |
---|
2356 | zooko@zooko.com**20090103190003 |
---|
2357 | Ignore-this: 1d429912dda92d986e2ee366d73e088c |
---|
2358 | ] |
---|
2359 | [docs: update install.html to recommend Python v2 instead of Python v2.5.2 |
---|
2360 | zooko@zooko.com**20090103183100 |
---|
2361 | Ignore-this: 5dbea379c59e0d9be817cdd9c8393d65 |
---|
2362 | ] |
---|
2363 | [trivial: remove unused import (pyflakes) |
---|
2364 | zooko@zooko.com**20090103182215 |
---|
2365 | Ignore-this: 4a29a14fa4580460a5e61fa0aa88b9b2 |
---|
2366 | ] |
---|
2367 | [merge_install.patch |
---|
2368 | cgalvan@mail.utexas.edu**20090102164434 |
---|
2369 | Ignore-this: aa6d4c05d583a0724eb218fef04c3940 |
---|
2370 | ] |
---|
2371 | [setup: new install doc -- doesn't require GNU make or a C++ compiler any more! |
---|
2372 | zooko@zooko.com**20081201180933 |
---|
2373 | Ignore-this: 753e8d1e6f32e2ddcd7a082050114725 |
---|
2374 | ] |
---|
2375 | [immutable: fix test for truncated reads of URI extension block size |
---|
2376 | zooko@zooko.com**20090103174427 |
---|
2377 | Ignore-this: d9ff9dfff88b4cc7aa6751ce2e9088a6 |
---|
2378 | ] |
---|
2379 | [immutable: further loosen the performance-regression test to allow up to 45 reads |
---|
2380 | zooko@zooko.com**20090103174109 |
---|
2381 | Ignore-this: 614f7dba9c0d310a220e74e45441f07 |
---|
2382 | This does raise the question of if there is any point to this test, since I apparently don't know what the answer *should* be, and whenever one of the buildbots fails then I redefine success. |
---|
2383 | |
---|
2384 | But, I'm about to commit a bunch of patches to implement checker, verifier, and repairer as well as to refactor downloader, and I would really like to know if these patches *increase* the number of reads required even higher than it currently is. |
---|
2385 | |
---|
2386 | ] |
---|
2387 | [trivial: another place where I accidentally committed a note-to-self about the lease fields in the server-side share file |
---|
2388 | zooko@zooko.com**20090103172941 |
---|
2389 | Ignore-this: c23c7095ffccdf5aa033ed434b50582b |
---|
2390 | ] |
---|
2391 | [immutable: fix detection of truncated shares to take into account the fieldsize -- either 4 or 8 |
---|
2392 | zooko@zooko.com**20090103005745 |
---|
2393 | Ignore-this: 710184bd90f73dc18f3899d90ec6e972 |
---|
2394 | ] |
---|
2395 | [immutable: raise LayoutInvalid instead of struct.error when a share is truncated |
---|
2396 | zooko@zooko.com**20090103004806 |
---|
2397 | Ignore-this: 346c779045f79725965a0f2d3eea41f9 |
---|
2398 | To fix this error from the Windows buildslave: |
---|
2399 | |
---|
2400 | [ERROR]: allmydata.test.test_immutable.Test.test_download_from_only_3_remaining_shares |
---|
2401 | |
---|
2402 | Traceback (most recent call last): |
---|
2403 | File "C:\Documents and Settings\buildslave\windows-native-tahoe\windows\build\src\allmydata\immutable\download.py", line 135, in _bad |
---|
2404 | raise NotEnoughSharesError("ran out of peers, last error was %s" % (f,)) |
---|
2405 | allmydata.interfaces.NotEnoughSharesError: ran out of peers, last error was [Failure instance: Traceback: <class 'struct.error'>: unpack requires a string argument of length 4 |
---|
2406 | c:\documents and settings\buildslave\windows-native-tahoe\windows\build\support\lib\site-packages\foolscap-0.3.2-py2.5.egg\foolscap\call.py:667:_done |
---|
2407 | c:\documents and settings\buildslave\windows-native-tahoe\windows\build\support\lib\site-packages\foolscap-0.3.2-py2.5.egg\foolscap\call.py:53:complete |
---|
2408 | c:\Python25\lib\site-packages\twisted\internet\defer.py:239:callback |
---|
2409 | c:\Python25\lib\site-packages\twisted\internet\defer.py:304:_startRunCallbacks |
---|
2410 | --- <exception caught here> --- |
---|
2411 | c:\Python25\lib\site-packages\twisted\internet\defer.py:317:_runCallbacks |
---|
2412 | C:\Documents and Settings\buildslave\windows-native-tahoe\windows\build\src\allmydata\immutable\layout.py:374:_got_length |
---|
2413 | C:\Python25\lib\struct.py:87:unpack |
---|
2414 | ] |
---|
2415 | =============================================================================== |
---|
2416 | |
---|
2417 | ] |
---|
2418 | [immutable: whoops, it actually takes up to 39 reads sometimes to download a corrupted file |
---|
2419 | zooko@zooko.com**20090102234302 |
---|
2420 | Ignore-this: ef009d179eb4f84a56559017b633d819 |
---|
2421 | ] |
---|
2422 | [immutable: add more detailed tests of download, including testing the count of how many reads different sorts of downloads take |
---|
2423 | zooko@zooko.com**20090102225459 |
---|
2424 | Ignore-this: d248eb3982fdb05b43329142a723f5a1 |
---|
2425 | ] |
---|
2426 | [trivial: a few improvements to in-line doc and code, and renaming of test/test_immutable_checker.py to test/test_immutable.py |
---|
2427 | zooko@zooko.com**20090102224941 |
---|
2428 | Ignore-this: 27b97a06c3edad1821f43876b4350f3 |
---|
2429 | That file currently tests checker and verifier and repairer, and will soon also test downloader. |
---|
2430 | ] |
---|
2431 | [immutable: fix name change from BadOrMissingShareHash to BadOrMissingHash |
---|
2432 | zooko@zooko.com**20090102192709 |
---|
2433 | Ignore-this: 3f22ca1ee045beabb11559512ba130f4 |
---|
2434 | One of the instances of the name accidentally didn't get changed, and pyflakes noticed. The new downloader/checker/verifier/repairer unit tests would also have noticed, but those tests haven't been rolled into a patch and applied to this repo yet... |
---|
2435 | ] |
---|
2436 | [trivial: remove unused import -- thanks, pyflakes |
---|
2437 | zooko@zooko.com**20090102192128 |
---|
2438 | Ignore-this: d99c7349ba6f8db971e31cf8789883d5 |
---|
2439 | ] |
---|
2440 | [immutable: download.py: Raise the appropriate type of exception to indicate the cause of failure, e.g. BadOrMissingHash, ServerFailure, IntegrityCheckReject (which is a supertype of BadOrMissingHash). This helps users (such as verifier/repairer) catch certain classes of reasons for "why did this download not work". The tests of verifier/repairer test this code and rely on this code. |
---|
2441 | zooko@zooko.com**20090102185858 |
---|
2442 | Ignore-this: 377bf621bbb6e360a98fd287bb1593f1 |
---|
2443 | ] |
---|
2444 | [immutable: ReadBucketProxy defines classes of exception: LayoutInvalid and its two subtypes RidiculouslyLargeURIExtensionBlock and ShareVersionIncompatible. This helps users (such as verifier/repairer) catch certain classes of reasons for "why did this download not work". This code gets exercised by the verifier/repairer unit tests, which corrupt the shares on disk in order to trigger problems like these. |
---|
2445 | zooko@zooko.com**20090102181554 |
---|
2446 | Ignore-this: 2288262a59ee695f524859ed4b0b39d5 |
---|
2447 | ] |
---|
2448 | [immutable: ValidatedExtendedURIProxy computes and stores block_size and share_size for the convenience of its users |
---|
2449 | zooko@zooko.com**20090102174317 |
---|
2450 | Ignore-this: 2bab64048fffc05dc6592d617aeb412f |
---|
2451 | ] |
---|
2452 | [remove_sumo_install.patch |
---|
2453 | cgalvan@mail.utexas.edu**20090102162347 |
---|
2454 | Ignore-this: f328570b1da1ccfbaebc770d40748046 |
---|
2455 | ] |
---|
2456 | [doc: remove notes to self that I accidentally included in a recent patch |
---|
2457 | zooko@zooko.com**20090102041457 |
---|
2458 | Ignore-this: d0039512dbde09811fdec48a2e00dc4 |
---|
2459 | ] |
---|
2460 | [docs: remove caveat about Nevow incompatibility with Python 2.6 since the latest version of Nevow has fixed it |
---|
2461 | zooko@zooko.com**20090102034135 |
---|
2462 | Ignore-this: 4cb2ceb41f53e07dab0f623e01044edc |
---|
2463 | ] |
---|
2464 | [immutable: make the test of large files more likely to work by requesting to allocate space for only one huge share, not three |
---|
2465 | zooko@zooko.com**20081231215942 |
---|
2466 | Ignore-this: d7073de4764506550e184f8fdc670962 |
---|
2467 | ] |
---|
2468 | [trivial: "M-x whitespace-cleanup", and also remove an unused variable |
---|
2469 | zooko@zooko.com**20081231214233 |
---|
2470 | Ignore-this: 54c33c205aa88de8655e4232d07f083e |
---|
2471 | ] |
---|
2472 | [immutable: storage servers accept any size shares now |
---|
2473 | zooko@zooko.com**20081231214226 |
---|
2474 | Ignore-this: 28669d591dddaff69088cba4483da61a |
---|
2475 | Nathan Wilcox observed that the storage server can rely on the size of the share file combined with the count of leases to unambiguously identify the location of the leases. This means that it can hold any size share data, even though the field nominally used to hold the size of the share data is only 32 bits wide. |
---|
2476 | |
---|
2477 | With this patch, the storage server still writes the "size of the share data" field (just in case the server gets downgraded to an earlier version which requires that field, or the share file gets moved to another server which is of an earlier vintage), but it doesn't use it. Also, with this patch, the server no longer rejects requests to write shares which are >= 2^32 bytes in size, and it no longer rejects attempts to read such shares. |
---|
2478 | |
---|
2479 | This fixes http://allmydata.org/trac/tahoe/ticket/346 (increase share-size field to 8 bytes, remove 12GiB filesize limit), although there remains open a question of how clients know that a given server can handle large shares (by using the new versioning scheme, probably). |
---|
2480 | |
---|
2481 | Note that share size is also limited by another factor -- how big of a file we can store on the local filesystem on the server. Currently allmydata.com typically uses ext3 and I think we typically have block size = 4 KiB, which means that the largest file is about 2 TiB. Also, the hard drives themselves are only 1 TB, so the largest share is definitely slightly less than 1 TB, which means (when K == 3), the largest file is less than 3 TB. |
---|
2482 | |
---|
2483 | This patch also refactors the creation of new sharefiles so that only a single fopen() is used. |
---|
2484 | |
---|
2485 | This patch also helps with the unit-testing of repairer, since formerly it was unclear what repairer should expect to find if the "share data size" field was corrupted (some corruptions would have no effect, others would cause failure to download). Now it is clear that repairer is not required to notice if this field is corrupted since it has no effect on download. :-) |
---|
2486 | |
---|
2487 | ] |
---|
2488 | [trivial: "M-x whitespace-cleanup" on immutable/layout.py |
---|
2489 | zooko@zooko.com**20081231210702 |
---|
2490 | Ignore-this: 8be47d01cf40d1f81aeb0011a0a0caa |
---|
2491 | ] |
---|
2492 | [trivial: remove unused import -- thanks, pyflakes |
---|
2493 | zooko@zooko.com**20081231212556 |
---|
2494 | Ignore-this: a70cd39a7d633bde2bb5275dfd4d3781 |
---|
2495 | ] |
---|
2496 | [rrefutil: generically wrap any errback from callRemote() in a ServerFailure instance |
---|
2497 | zooko@zooko.com**20081231202830 |
---|
2498 | Ignore-this: c949eaf8589ed4c3c232f17808fdce6a |
---|
2499 | This facilitates client code to easily catch ServerFailures without also catching exceptions arising from client-side code. |
---|
2500 | See also: |
---|
2501 | http://foolscap.lothar.com/trac/ticket/105 # make it easy to distinguish server-side failures/exceptions from client-side |
---|
2502 | ] |
---|
2503 | [immutable: more detailed tests for checker/verifier/repairer |
---|
2504 | zooko@zooko.com**20081231201838 |
---|
2505 | Ignore-this: dd16beef604b0917f4493bc4ef35ab74 |
---|
2506 | There are a lot of different ways that a share could be corrupted, or that attempting to download it might fail. These tests attempt to exercise many of those ways and require the checker/verifier/repairer to handle each kind of failure well. |
---|
2507 | ] |
---|
2508 | [docs: add note about non-ascii chars in cli to NEWS |
---|
2509 | zooko@zooko.com**20081230081728 |
---|
2510 | Ignore-this: c6f45a1d944af3c77942a4bf740ee24c |
---|
2511 | ] |
---|
2512 | [cli: make startstop_node wait 20 seconds instead of 5 for a process to go away after we signalled it to go away |
---|
2513 | zooko@zooko.com**20081230072022 |
---|
2514 | Ignore-this: 3b0d47649e32b01ff55a506245c674c6 |
---|
2515 | Because the unit tests on the VirtualZooko buildslave failed when it took 16 seconds for a process to go away. |
---|
2516 | Perhaps getting notification after only 5 seconds instead of 20 seconds is desirable, and we should change the unit tests and set this back to 5, but I don't know exactly how to change the unit tests. Perhaps match this particular warning message about the shutdown taking a while and allow the code under test to pass if the only stderr that it emits is this warning. |
---|
2517 | ] |
---|
2518 | [docs: editing changes and updated news in known_issues.txt |
---|
2519 | zooko@zooko.com**20081230070116 |
---|
2520 | Ignore-this: e5dddc4446e3335a6c4eee7472e0670e |
---|
2521 | ] |
---|
2522 | [docs: split historical/historical_known_issues.txt out of known_issues.txt |
---|
2523 | zooko@zooko.com**20081230065226 |
---|
2524 | Ignore-this: 9b6d0d679294110deeb0ea18b4ad7ac8 |
---|
2525 | All issues which are relevant to users of v1.1, v1.2, or v1.3 go in known_issues.txt. All issues which are relevant to users of v1.0 go in historical/historical_known_issues.txt. |
---|
2526 | ] |
---|
2527 | [doc: sundry amendments to docs and in-line code comments |
---|
2528 | zooko@zooko.com**20081228225954 |
---|
2529 | Ignore-this: a38057b9bf0f00afeea1c468b2237c36 |
---|
2530 | ] |
---|
2531 | [doc: add mention of "tahoe create-alias" in the security-warning section of CLI.txt |
---|
2532 | zooko@zooko.com**20081224211646 |
---|
2533 | Ignore-this: 6bb0ab3af59a79e05ebccb800d9a12b0 |
---|
2534 | ] |
---|
2535 | [doc: trivial: remove trailing whitespace |
---|
2536 | zooko@zooko.com**20081224211634 |
---|
2537 | Ignore-this: 6ff234bc7632c3ae4d4f2be2198bb97d |
---|
2538 | ] |
---|
2539 | [doc: warn that unicode might not work, in CLI.txt |
---|
2540 | zooko@zooko.com**20081224211618 |
---|
2541 | Ignore-this: 89355b53aab40af1d45a3746bb90ed10 |
---|
2542 | ] |
---|
2543 | [doc: use the term "filesystem" rather than "virtual drive" in CLI.txt |
---|
2544 | zooko@zooko.com**20081224211614 |
---|
2545 | Ignore-this: c9541955201671c1a3a8c6ca7be4e7d |
---|
2546 | ] |
---|
2547 | [cli: mark unicode filenames as unsupported -- see #534 for details |
---|
2548 | zooko@zooko.com**20081224192802 |
---|
2549 | Ignore-this: b209ccbd838f633ec201e2e97156847c |
---|
2550 | ] |
---|
2551 | [cli: undo the effects of [http://allmydata.org/trac/tahoe/changeset/20081222235453-92b7f-f841e18afb94e1fd95e6dafb799a3d876dd85c69] |
---|
2552 | zooko@zooko.com**20081224155317 |
---|
2553 | Ignore-this: d34ee20d89221357e32872d721d7685f |
---|
2554 | We're just going to mark unicode in the cli as unsupported for tahoe-lafs-1.3.0. Unicode filenames on the command-line do actually work for some platforms and probably only if the platform encoding is utf-8, but I'm not sure, and in any case for it to be marked as "supported" it would have to work on all platforms, be thoroughly tested, and also we would have to understand why it worked. :-) |
---|
2555 | |
---|
2556 | ] |
---|
2557 | [test: extend timeout on the hotline file that prevents the client from stopping itself |
---|
2558 | zooko@zooko.com**20081222030629 |
---|
2559 | Ignore-this: 391f48caef9d6ad558e540ded56a8075 |
---|
2560 | The 20-second timeout was apparently tripped on my Powerbook G4 "draco". |
---|
2561 | ] |
---|
2562 | [cli: decode all cli arguments, assuming that they are utf-8 encoded |
---|
2563 | zooko@zooko.com**20081222235453 |
---|
2564 | Ignore-this: d92b4d146e1dc9848c6a4b6aaaa3d1e9 |
---|
2565 | Also encode all args to urllib as utf-8 because urllib doesn't handle unicode objects. |
---|
2566 | I'm not sure if it is appropriate to *assume* utf-8 encoding of cli args. Perhaps the Right thing to do is to detect the platform encoding. Any ideas? |
---|
2567 | This patch is mostly due to François Deppierraz. |
---|
2568 | |
---|
2569 | ] |
---|
2570 | [util/base32: the identity trans table needn't have any contents -- we are using string.translate solely to delete known chars |
---|
2571 | zooko@zooko.com**20081222234808 |
---|
2572 | Ignore-this: 8fe03ec6571726f44425fc5905387b78 |
---|
2573 | ] |
---|
2574 | [util/base32: allow unicode inputs to a2b() or could_be_base32_encoded(), and encode them with utf-8 before processing them |
---|
2575 | zooko@zooko.com**20081222234713 |
---|
2576 | Ignore-this: e1eb4caed2f78b2fef0df4bbf8bb26f7 |
---|
2577 | ] |
---|
2578 | [util/base32: loosen the precondition forbidding unicode and requiring str -- now it requires either unicode or str |
---|
2579 | zooko@zooko.com**20081222222237 |
---|
2580 | Ignore-this: 3481d644bdc5345facbc199d33653f37 |
---|
2581 | Hopefully this will make it so that tests pass with François Deppierraz's patch to fix the tahoe cli's handling of unicode argument. |
---|
2582 | ] |
---|
2583 | [immutable: don't catch all exception when downloading, catch only DeadReferenceError and IntegrityCheckReject |
---|
2584 | zooko@zooko.com**20081221234135 |
---|
2585 | Ignore-this: 1abe05c3a5910378abc3920961f19aee |
---|
2586 | ] |
---|
2587 | [immutable: invent download.BadOrMissingHashError which is raised if either hashtree.BadHashError, hashtree.NotEnoughHashesError, and which is a subclass of IntegrityCheckReject |
---|
2588 | zooko@zooko.com**20081221234130 |
---|
2589 | Ignore-this: 1b04d7e9402ebfb2cd4c7648eb16af84 |
---|
2590 | ] |
---|
2591 | [dirnode: don't check MAC on entries in dirnodes |
---|
2592 | zooko@zooko.com**20081221233518 |
---|
2593 | Ignore-this: efacb56d18259219c910cf5c84b17340 |
---|
2594 | In an ancient version of directories, we needed a MAC on each entry. In modern times, the entire dirnode comes with a digital signature, so the MAC on each entry is redundant. |
---|
2595 | With this patch, we no longer check those MACs when reading directories, but we still produce them so that older readers will accept directories that we write. |
---|
2596 | |
---|
2597 | ] |
---|
2598 | [immutable, checker, and tests: improve docstrings, assertions, tests |
---|
2599 | zooko@zooko.com**20081221210752 |
---|
2600 | Ignore-this: 403ed5ca120d085d582cd5695d8371f |
---|
2601 | No functional changes, but remove unused code, improve or fix docstrings, etc. |
---|
2602 | ] |
---|
2603 | [cli: if response code from wapi server is not 200 then stop instead of proceeding |
---|
2604 | zooko@zooko.com**20081220134918 |
---|
2605 | Ignore-this: 907481c941fc5696630b9c118137fb52 |
---|
2606 | Also, include the data that failed to json parse in an exception raised by the json parser. |
---|
2607 | ] |
---|
2608 | [immutable: when downloading an immutable file, use primary shares if they are available |
---|
2609 | zooko@zooko.com**20081220131456 |
---|
2610 | Ignore-this: f7b8b76fd7df032673ab072384eaa989 |
---|
2611 | Primary shares require no erasure decoding so the more primary shares you have, the less CPU is used. |
---|
2612 | ] |
---|
2613 | [trivial: remove unused import (thanks, pyflakes) |
---|
2614 | zooko@zooko.com**20081219194629 |
---|
2615 | Ignore-this: 96e15d6de43dd1204a8933171f194189 |
---|
2616 | ] |
---|
2617 | [try to tidy up uri-as-string vs. uri-as-object |
---|
2618 | zooko@zooko.com**20081219143924 |
---|
2619 | Ignore-this: 4280727007c29f5b3e9273a34519893f |
---|
2620 | I get confused about whether a given argument or return value is a uri-as-string or uri-as-object. This patch adds a lot of assertions that it is one or the other, and also changes CheckerResults to take objects not strings. |
---|
2621 | In the future, I hope that we generally use Python objects except when importing into or exporting from the Python interpreter e.g. over the wire, the UI, or a stored file. |
---|
2622 | ] |
---|
2623 | [immutable: remove the last bits of code (only test code or unused code) which did something with plaintext hashes or plaintext hash trees |
---|
2624 | zooko@zooko.com**20081219141807 |
---|
2625 | Ignore-this: d10d26b279794383f27fa59ec4a50219 |
---|
2626 | ] |
---|
2627 | [immutable: use new logging mixins to simplify logging |
---|
2628 | zooko@zooko.com**20081217000450 |
---|
2629 | Ignore-this: 7d942905d1ea8f34753dbb997e1857f3 |
---|
2630 | ] |
---|
2631 | [immutable: refactor ReadBucketProxy a little |
---|
2632 | zooko@zooko.com**20081216235325 |
---|
2633 | Ignore-this: b3733257769eff3b3e9625bd04643fd6 |
---|
2634 | ] |
---|
2635 | [debug: pass empty optional arguments to ReadBucketProxy |
---|
2636 | zooko@zooko.com**20081216235145 |
---|
2637 | Ignore-this: 7132cdc6a52767fbbcca03b242a16982 |
---|
2638 | because those arguments are about to become non-optional (for other code than test/debug code) |
---|
2639 | ] |
---|
2640 | [uri: generalize regexp that recognizes tahoe URLs to work for any host and port |
---|
2641 | zooko@zooko.com**20081216234930 |
---|
2642 | Ignore-this: 4a7716b8034c8e5ed9698a99f1ec5cb4 |
---|
2643 | ] |
---|
2644 | [util: logging: refactor some common logging behavior into mixins |
---|
2645 | zooko@zooko.com**20081216233807 |
---|
2646 | Ignore-this: d91408bc984d1cf1fae30134f6cddb13 |
---|
2647 | ] |
---|
2648 | [pyutil: assertutil: copy in simplified assertutil from pyutil |
---|
2649 | zooko@zooko.com**20081216233745 |
---|
2650 | Ignore-this: cd4a33186c8c134104f07018ab448583 |
---|
2651 | ] |
---|
2652 | [pyutil: assertutil: simplify handling of exception during formatting of precondition message, and reduce dependency to just the Python Standard Library's logging module |
---|
2653 | zooko@zooko.com**20081210131057 |
---|
2654 | Ignore-this: 4a7f1aa5b9f7ac60067347db9cdf5f28 |
---|
2655 | ] |
---|
2656 | [client: add get_servers() |
---|
2657 | zooko@zooko.com**20081208230400 |
---|
2658 | Ignore-this: 1b9b3ff483849563342f467c39fdd15d |
---|
2659 | ] |
---|
2660 | [mutable publish: if we are surprised by shares that match what we would have written anyways, don't be surprised. This should fix one of the two #546 problems, in which we re-use a server and forget that we already sent them a share. |
---|
2661 | warner@allmydata.com**20081210044449] |
---|
2662 | [NEWS: updated to most recent user-visible changes, including the 8123-to-3456 change |
---|
2663 | warner@allmydata.com**20081209231146] |
---|
2664 | [immutable: remove unused code to produce plaintext hashes |
---|
2665 | zooko@zooko.com**20081209224546 |
---|
2666 | Ignore-this: 1ff9b6fa48e0617fea809998a0e3b6e |
---|
2667 | ] |
---|
2668 | [finish renaming 'subshare' to 'block' in immutable/encode.py and in docs/ |
---|
2669 | zooko@zooko.com**20081209223318 |
---|
2670 | Ignore-this: 3d1b519f740c3d1030cb733f76fdae61 |
---|
2671 | ] |
---|
2672 | [introducer: fix bug in recent simplification caught by Brian's sharp code-reviewing eye |
---|
2673 | zooko@zooko.com**20081208231634 |
---|
2674 | Ignore-this: 29854954577018d658be49142177edf2 |
---|
2675 | ] |
---|
2676 | [introducer: simplify get_permuted_peers() implementation and add get_peers() |
---|
2677 | zooko@zooko.com**20081208225725 |
---|
2678 | Ignore-this: 8299c0dc187521f34187e54c72e57dc9 |
---|
2679 | ] |
---|
2680 | [webapi.txt: minor edits |
---|
2681 | warner@allmydata.com**20081208213256] |
---|
2682 | [rename "get_verifier()" to "get_verify_cap()" |
---|
2683 | zooko@zooko.com**20081208184411 |
---|
2684 | Ignore-this: 3ea4d7a78c802b23f628a37cc643c11a |
---|
2685 | ] |
---|
2686 | [setup: try depending on setuptools >= 0.6c6 instead of >= 0.6c7 at run-time, to be able to use the setuptools that came with Ubuntu Gutsy |
---|
2687 | zooko@zooko.com**20081208174725 |
---|
2688 | Ignore-this: 1cfefa8891f627c7ed46f1ff127eeee9 |
---|
2689 | ] |
---|
2690 | [setup: loosen requirement on simplejson to >= 1.4 |
---|
2691 | zooko@zooko.com**20081208143537 |
---|
2692 | Ignore-this: 2e4bec12f047f3f525caa6f234b58784 |
---|
2693 | That's the version of simplejson that comes with ubuntu feisty, and the one that we've required for most of our history. Currently the Ubuntu dapper buildslave fails (see issue #534), and setting the simplejson requirement to be >= 2.0 would fix that failure, but I don't understand why. |
---|
2694 | ] |
---|
2695 | [setup: require simplejson >= 1.7.1 |
---|
2696 | zooko@zooko.com**20081208043412 |
---|
2697 | Ignore-this: ab0e8ba82f0d10bc650bc80732bf3d0e |
---|
2698 | That's the version that comes with gutsy, and we don't really understand why increasing the required version number helped with issue #553. |
---|
2699 | ] |
---|
2700 | [mutable: merge renaming with test patches |
---|
2701 | zooko@zooko.com**20081207144519 |
---|
2702 | Ignore-this: a922a8b231090fb35b9ef84d99e9dba3 |
---|
2703 | ] |
---|
2704 | [mutable: rename mutable/node.py to mutable/filenode.py and mutable/repair.py to mutable/repairer.py |
---|
2705 | zooko@zooko.com**20081207142008 |
---|
2706 | Ignore-this: ecee635b01a21e6f866a11bb349712a3 |
---|
2707 | To be more consistent with the immutable layout that I am working on. |
---|
2708 | ] |
---|
2709 | [web/directory.py: really really fix #553. Unfortunately it's tricky to simulate the behavior of a brower's relative-url handling in a unit test. |
---|
2710 | warner@allmydata.com**20081206051412] |
---|
2711 | [filenode.py: Fix partial HTTP Range header handling according to RFC2616 |
---|
2712 | francois@ctrlaltdel.ch**20081118134135 |
---|
2713 | |
---|
2714 | Tahoe webapi was failing on HTTP request containing a partial Range header. |
---|
2715 | This change allows movies players like mplayer to seek in movie files stored in |
---|
2716 | tahoe. |
---|
2717 | |
---|
2718 | Associated tests for GET and HEAD methods are also included |
---|
2719 | ] |
---|
2720 | [mutable.modify(): after UCWE, publish even if the second invocation of the modifier didn't modify anything. For #551. |
---|
2721 | warner@allmydata.com**20081206044923] |
---|
2722 | [dirnode.py: dirnode.delete which hits UCWE should not fail with NoSuchChildError. Fixes #550. |
---|
2723 | warner@allmydata.com**20081206040837] |
---|
2724 | [MutableFileNode.modify: pass first_time= and servermap= to the modifier callback |
---|
2725 | warner@allmydata.com**20081206040710] |
---|
2726 | [misc/cpu-watcher.tac: tolerate disk-full errors when writing the pickle, and pickle corruption from earlier disk-full errors |
---|
2727 | warner@allmydata.com**20081205215412] |
---|
2728 | [web: fix more info links again |
---|
2729 | zooko@zooko.com**20081205213939 |
---|
2730 | Ignore-this: d51cf2c6393b5799dc615952680cd079 |
---|
2731 | Really, *really* closes #553. |
---|
2732 | ] |
---|
2733 | [web: fix moreinfo link |
---|
2734 | zooko@zooko.com**20081205212939 |
---|
2735 | Ignore-this: 89913601a159437a2c151dd3652e6a94 |
---|
2736 | ] |
---|
2737 | [web: "More Info" link describes the same file that the "file" link points to, rather than to the file under the same name in this directory |
---|
2738 | zooko@zooko.com**20081205210502 |
---|
2739 | Ignore-this: 5017754e11749b376c7fa66d1acb2a58 |
---|
2740 | It's a subtle but real difference. |
---|
2741 | Fixes #553 -- "More Info" link should point to a file/dir, not a dir+childname . |
---|
2742 | ] |
---|
2743 | [minor: fix unused imports -- thanks, pyflakes |
---|
2744 | zooko@zooko.com**20081205190723 |
---|
2745 | Ignore-this: 799f6a16360ac1aee8f6e0eb35a28a88 |
---|
2746 | ] |
---|
2747 | [download: refactor handling of URI Extension Block and crypttext hash tree, simplify things |
---|
2748 | zooko@zooko.com**20081205141754 |
---|
2749 | Ignore-this: 51b9952ea2406b0eea60e8d72654fd99 |
---|
2750 | |
---|
2751 | Refactor into a class the logic of asking each server in turn until one of them gives an answer |
---|
2752 | that validates. It is called ValidatedThingObtainer. |
---|
2753 | |
---|
2754 | Refactor the downloading and verification of the URI Extension Block into a class named |
---|
2755 | ValidatedExtendedURIProxy. |
---|
2756 | |
---|
2757 | The new logic of validating UEBs is minimalist: it doesn't require the UEB to contain any |
---|
2758 | unncessary information, but of course it still accepts such information for backwards |
---|
2759 | compatibility (so that this new download code is able to download files uploaded with old, and |
---|
2760 | for that matter with current, upload code). |
---|
2761 | |
---|
2762 | The new logic of validating UEBs follows the practice of doing all validation up front. This |
---|
2763 | practice advises one to isolate the validation of incoming data into one place, so that all of |
---|
2764 | the rest of the code can assume only valid data. |
---|
2765 | |
---|
2766 | If any redundant information is present in the UEB+URI, the new code cross-checks and asserts |
---|
2767 | that it is all fully consistent. This closes some issues where the uploader could have |
---|
2768 | uploaded inconsistent redundant data, which would probably have caused the old downloader to |
---|
2769 | simply reject that download after getting a Python exception, but perhaps could have caused |
---|
2770 | greater harm to the old downloader. |
---|
2771 | |
---|
2772 | I removed the notion of selecting an erasure codec from codec.py based on the string that was |
---|
2773 | passed in the UEB. Currently "crs" is the only such string that works, so |
---|
2774 | "_assert(codec_name == 'crs')" is simpler and more explicit. This is also in keeping with the |
---|
2775 | "validate up front" strategy -- now if someone sets a different string than "crs" in their UEB, |
---|
2776 | the downloader will reject the download in the "validate this UEB" function instead of in a |
---|
2777 | separate "select the codec instance" function. |
---|
2778 | |
---|
2779 | I removed the code to check plaintext hashes and plaintext Merkle Trees. Uploaders do not |
---|
2780 | produce this information any more (since it potentially exposes confidential information about |
---|
2781 | the file), and the unit tests for it were disabled. The downloader before this patch would |
---|
2782 | check that plaintext hash or plaintext merkle tree if they were present, but not complain if |
---|
2783 | they were absent. The new downloader in this patch complains if they are present and doesn't |
---|
2784 | check them. (We might in the future re-introduce such hashes over the plaintext, but encrypt |
---|
2785 | the hashes which are stored in the UEB to preserve confidentiality. This would be a double- |
---|
2786 | check on the correctness of our own source code -- the current Merkle Tree over the ciphertext |
---|
2787 | is already sufficient to guarantee the integrity of the download unless there is a bug in our |
---|
2788 | Merkle Tree or AES implementation.) |
---|
2789 | |
---|
2790 | This patch increases the lines-of-code count by 8 (from 17,770 to 17,778), and reduces the |
---|
2791 | uncovered-by-tests lines-of-code count by 24 (from 1408 to 1384). Those numbers would be more |
---|
2792 | meaningful if we omitted src/allmydata/util/ from the test-coverage statistics. |
---|
2793 | |
---|
2794 | ] |
---|
2795 | [test_web: add get_permuted_peers, to unbreak recent checker_results change |
---|
2796 | warner@allmydata.com**20081205081210] |
---|
2797 | [web checker_results: include a table of servers in permuted order, so you can see the places where new servers have been inserted |
---|
2798 | warner@allmydata.com**20081205080309] |
---|
2799 | [test_system.py: assert less about the stats we get, since shares (and thus allocate() calls) are distributed randomly |
---|
2800 | warner@allmydata.com**20081204232704] |
---|
2801 | [stats: don't return booleans: it violates the schema. Add a test. |
---|
2802 | warner@lothar.com**20081204210124] |
---|
2803 | [test_system.py: don't ask the stats-gatherer to poll: it tolerates failures, so it isn't really giving us enough test coverage. Removing the call will make it more clear that we need to improve the tests later |
---|
2804 | warner@lothar.com**20081204210053] |
---|
2805 | [confwiz.py - removing hardcoded version number |
---|
2806 | secorp@allmydata.com**20081203023831] |
---|
2807 | [CLI: check for pre-existing aliases in 'tahoe create-alias' and 'tahoe add-alias' |
---|
2808 | warner@lothar.com**20081203022022] |
---|
2809 | [test_cli: pass rc out of do_cli() too |
---|
2810 | warner@lothar.com**20081203020828] |
---|
2811 | [setup: one more address to send release announcements to |
---|
2812 | zooko@zooko.com**20081203015040 |
---|
2813 | Ignore-this: 87cb7a9c3a1810ff0c87908548027ac5 |
---|
2814 | ] |
---|
2815 | [setup: another note about the process of making a tahoe release: mail to duplicity-talk@nongnu.org |
---|
2816 | zooko@zooko.com**20081203014414 |
---|
2817 | Ignore-this: 77ffd6f7412cdc3283c1450cfde9fdf1 |
---|
2818 | ] |
---|
2819 | [test_storage.py: more windows-vs-readonly-storage fixes |
---|
2820 | warner@lothar.com**20081203014102] |
---|
2821 | [docs/webapi.txt: update helper section to discuss tahoe.cfg |
---|
2822 | warner@lothar.com**20081203010726] |
---|
2823 | [docs/webapi.txt: update to discuss tahoe.cfg, not BASEDIR/webport |
---|
2824 | warner@lothar.com**20081203010612] |
---|
2825 | [storage.py: oops, fix windows again, readonly_storage wasn't getting picked up properly |
---|
2826 | warner@lothar.com**20081203010317] |
---|
2827 | [test_download.py: remove extra base32 import |
---|
2828 | warner@lothar.com**20081203003126] |
---|
2829 | [test_download: test both mutable and immutable pre-generated shares |
---|
2830 | warner@lothar.com**20081203003007] |
---|
2831 | [test_download.py: added 'known-answer-tests', to make sure current code can download a file that was created by earlier code |
---|
2832 | warner@lothar.com**20081203002208] |
---|
2833 | [docs/configuration.txt: fix minor typo |
---|
2834 | warner@lothar.com**20081202215101] |
---|
2835 | [storage.py: unbreak readonly_storage=True on windows |
---|
2836 | warner@allmydata.com**20081202014946] |
---|
2837 | [#542 'tahoe create-key-generator': fix the .tac file this creates to be compatible with modern code, add a test |
---|
2838 | warner@allmydata.com**20081201234721] |
---|
2839 | [storage.py: fix minor typo in comment |
---|
2840 | warner@lothar.com**20081201232540] |
---|
2841 | [storage: replace sizelimit with reserved_space, make the stats 'disk_avail' number incorporate this reservation |
---|
2842 | warner@lothar.com**20081201232421] |
---|
2843 | [util/abbreviate: add abbreviated-size parser |
---|
2844 | warner@lothar.com**20081201232412] |
---|
2845 | [wui/wapi: change the default port number from 8123 to 3456 to avoid conflict with TorButton |
---|
2846 | zooko@zooko.com**20081125235737 |
---|
2847 | Ignore-this: 47ea30bafd5917a7e1dbc88aa0190f8e |
---|
2848 | See ticket #536 for details. |
---|
2849 | ] |
---|
2850 | [setup: move the requirement on simplejson from setup.py to _auto_deps.py, and loosen it from >= 2.0.5 to > 1.8.1 |
---|
2851 | zooko@zooko.com**20081125203751 |
---|
2852 | Ignore-this: 4403781ef878547ee09e7e010eb5b49a |
---|
2853 | We'll see if this fixes the tests on all of our current buildslaves, and if it does then I'll be happy to leave it at "> 1.8.1" for now, even though I don't know exactly what versions of simplejson changed exactly what behavior that interacts with exactly what environment. See http://allmydata.org/trac/tahoe/ticket/534 for uncertainties. |
---|
2854 | |
---|
2855 | ] |
---|
2856 | [setup.py: Require simplejson version >= 2.0.5 |
---|
2857 | francois@ctrlaltdel.ch**20081125171727] |
---|
2858 | [mutable publish: reinstate the foolscap-reference-token-bug workaround, both for the original reasons and because of an apparent new foolscap bug that's triggered by reference tokens. See #541 for details. |
---|
2859 | warner@allmydata.com**20081125202735] |
---|
2860 | [setup: fix missing import -- thanks, pyflakes |
---|
2861 | zooko@zooko.com**20081125155528 |
---|
2862 | Ignore-this: 1fc042da2882b7b2f71cde93eb234a47 |
---|
2863 | ] |
---|
2864 | [setup: correctly detect Arch Linux in platform description |
---|
2865 | zooko@zooko.com**20081125155118 |
---|
2866 | Ignore-this: 37a7648f190679d3e973270a73133189 |
---|
2867 | ] |
---|
2868 | [dirnode manifest: add verifycaps, both to internal API and to webapi. This will give the manual-GC tools more to work with, so they can estimate how much space will be freed. |
---|
2869 | warner@allmydata.com**20081124204046] |
---|
2870 | [control.py: use get_buckets() instead of get_version() to measure ping time, because the latter changed recently |
---|
2871 | warner@lothar.com**20081123051323] |
---|
2872 | [upload: when using a Helper, insist that it provide protocols/helper/v1 . Related to #538. |
---|
2873 | warner@allmydata.com**20081122022932] |
---|
2874 | [upload: don't use servers which can't support the share size we need. This ought to avoid #439 problems. Some day we'll have a storage server which advertises support for a larger share size. No tests yet. |
---|
2875 | warner@allmydata.com**20081122022812] |
---|
2876 | [#538: fetch version and attach to the rref. Make IntroducerClient demand v1 support. |
---|
2877 | warner@allmydata.com**20081122020727] |
---|
2878 | [#538: add remote_get_version() to four main Referenceable objects: Introducer Service, Storage Server, Helper, CHK Upload Helper. Remove unused storage-server get_versions(). |
---|
2879 | warner@allmydata.com**20081121234352] |
---|
2880 | [setup: turn off --multi-version until I can figure out why it breaks test_runner |
---|
2881 | zooko@zooko.com**20081121043645 |
---|
2882 | Ignore-this: 36bf5db4122e6bc4e12588d9717a1e32 |
---|
2883 | ] |
---|
2884 | [setup: require setuptools >= 0.6c7 to run |
---|
2885 | zooko@zooko.com**20081121043611 |
---|
2886 | Ignore-this: e92e07c7e8edbaadcd44db7e8f4a028 |
---|
2887 | ] |
---|
2888 | [setup: use "setup.py develop --multi-version" so that if there is a too-old version of a dependency installed this doesn't prevent Tahoe's "develop" and run-in-place from working |
---|
2889 | zooko@zooko.com**20081120201545 |
---|
2890 | Ignore-this: 898f21fc1b16ae39c292fdd1ef42c446 |
---|
2891 | ] |
---|
2892 | [setup: we require setuptools > 0.6a9 in order to parse requirements that have a dot in them such as "zope.interface" |
---|
2893 | zooko@zooko.com**20081120151503 |
---|
2894 | Ignore-this: a6304de8f1f44defc50438d72a13e58f |
---|
2895 | In the near future we might start actually relying on setuptools's pkg_resources's "require()" function to make modules importable, so we can't just skip zope.interface. |
---|
2896 | ] |
---|
2897 | [test_dirnode: add an explainError call |
---|
2898 | warner@allmydata.com**20081119220212] |
---|
2899 | [manifest: add storage-index strings to the json results |
---|
2900 | warner@allmydata.com**20081119220027] |
---|
2901 | [manifest: include stats in results. webapi is unchanged. |
---|
2902 | warner@allmydata.com**20081119210347] |
---|
2903 | [misc/spacetime/diskwatcher.tac: remove dead code |
---|
2904 | warner@allmydata.com**20081119200552] |
---|
2905 | [mutable: respect the new tahoe.cfg 'shares.needed' and 'shares.total' settings |
---|
2906 | warner@allmydata.com**20081119200501] |
---|
2907 | [oops, update tests to match 'tahoe stats' change |
---|
2908 | warner@allmydata.com**20081119023259] |
---|
2909 | [cli: tahoe stats: abbreviate total sizes too |
---|
2910 | warner@allmydata.com**20081119022816] |
---|
2911 | [cli: 'tahoe stats': add abbreviated size to the histogram. Not sure this actually improves things. |
---|
2912 | warner@allmydata.com**20081119021736] |
---|
2913 | [util/abbreviate: little utility to abbreviate seconds and bytes |
---|
2914 | warner@allmydata.com**20081119021142] |
---|
2915 | [cli: add 'tahoe check' and 'tahoe deep-check' commands, with primitive reporting code |
---|
2916 | warner@allmydata.com**20081119011210] |
---|
2917 | [cli: factor out slow-http-operation to a separate module |
---|
2918 | warner@allmydata.com**20081119011113] |
---|
2919 | [cli: tahoe stats/manifest: change --verbose to --raw, since I want -v for --verify for check/deep-check/repair |
---|
2920 | warner@allmydata.com**20081119003608] |
---|
2921 | [test_system: make 'where' strings more helpful, to track down test failures better |
---|
2922 | warner@allmydata.com**20081119002950] |
---|
2923 | [webapi: add 'summary' string to checker results JSON |
---|
2924 | warner@allmydata.com**20081119002826] |
---|
2925 | [munin/tahoe_disktotal: add a 'disk used' line, since it will always be less than disktotal |
---|
2926 | warner@allmydata.com**20081118214431] |
---|
2927 | [munin/tahoe_introstats: add line for distinct-storage-hosts (which counts machines instead of nodes) |
---|
2928 | warner@allmydata.com**20081118213238] |
---|
2929 | [webapi: introducer stats: add 'announcement_distinct_hosts' to the t=json form, to show how many distinct hosts are providing e.g. storage services |
---|
2930 | warner@allmydata.com**20081118213015] |
---|
2931 | ['tahoe create-key-generator': fix help text |
---|
2932 | warner@allmydata.com**20081118074758] |
---|
2933 | [#330: convert stats-gatherer into a .tac file service, add 'tahoe create-stats-gatherer' |
---|
2934 | warner@allmydata.com**20081118074620] |
---|
2935 | [munin/tahoe_diskused: new plugin to show total disk space used across the grid |
---|
2936 | warner@allmydata.com**20081118072525] |
---|
2937 | [munin/tahoe_disktotal: new plugin to show total disk space (used and unused) in the grid |
---|
2938 | warner@allmydata.com**20081118065101] |
---|
2939 | [tahoe.cfg: add controls for k and N (and shares-of-happiness) |
---|
2940 | warner@allmydata.com**20081118062944] |
---|
2941 | [cli: add tests for 'tahoe stats --verbose' |
---|
2942 | warner@allmydata.com**20081118041114] |
---|
2943 | [cli: add --verbose to 'tahoe manifest', to show the raw JSON data |
---|
2944 | warner@allmydata.com**20081118040219] |
---|
2945 | [diskwatcher: record total-space (the size of the disk as reported by df) in the db, report it to HTTP clients. This will involve a 50-item-per-second upgrade process when it is first used on old data |
---|
2946 | warner@allmydata.com**20081118034516] |
---|
2947 | [dirnode manifest/stats: process more than one LIT file per tree; we were accidentally ignoring all but the first |
---|
2948 | warner@allmydata.com**20081115045049] |
---|
2949 | [limiter.py: fix stack blowout by inserting an eventual-send between _done and maybe_start_task. This was causing failures during a 'tahoe manifest' of a large set of directories |
---|
2950 | warner@allmydata.com**20081115031144] |
---|
2951 | [New credit file entry |
---|
2952 | francois@ctrlaltdel.ch**20081114140548] |
---|
2953 | [test_cli.py: Ensure that we can read our uploaded files back |
---|
2954 | francois@ctrlaltdel.ch**20081114134458] |
---|
2955 | [test_cli.py: use str objects instead of unicode ones |
---|
2956 | francois@ctrlaltdel.ch**20081114134137 |
---|
2957 | |
---|
2958 | This will hopefully fix failing tests with LC_ALL=C |
---|
2959 | ] |
---|
2960 | [CLI: add 'tahoe stats', to run start-deep-stats and print the results |
---|
2961 | warner@allmydata.com**20081114014350] |
---|
2962 | [test_system.py: fix new 'tahoe manifest' tests to not break on windows, by providing --node-directory instead of --node-url |
---|
2963 | warner@allmydata.com**20081113212748] |
---|
2964 | [test for bug #534, unicode filenames |
---|
2965 | francois@ctrlaltdel.ch**20081113111951 |
---|
2966 | |
---|
2967 | This test assure that uploading a file whose name contains unicode character |
---|
2968 | doesn't prevent further uploads in the same directory. |
---|
2969 | ] |
---|
2970 | [Fix an filename encoding issue with "tahoe cp" |
---|
2971 | francois@ctrlaltdel.ch**20081111200803] |
---|
2972 | [web/info.py: use 128-bit ophandles instead of 64-bit |
---|
2973 | warner@allmydata.com**20081113021842] |
---|
2974 | [CLI: add 'tahoe manifest', which takes a directory and returns a list of things you can reach from it |
---|
2975 | warner@allmydata.com**20081113021725] |
---|
2976 | [create_node.py: also remove now-unused import of pkg_resources |
---|
2977 | warner@allmydata.com**20081113004716] |
---|
2978 | [tahoe.cfg: add tub.location, to override the location hints we include in our FURL. This replaces advertised_ip_addresses, which doesn't remain useful enough to retain it. Helps with #517 (Tor). |
---|
2979 | warner@allmydata.com**20081113004458] |
---|
2980 | [setup: remove pkg_resources.require() from create_node.py and add it to runner.py |
---|
2981 | zooko@zooko.com**20081112212503 |
---|
2982 | Ignore-this: 763324202456a59b833b14eb4027171 |
---|
2983 | Brian correctly points out that the latter is an entry point. |
---|
2984 | ] |
---|
2985 | [docs: fix cutnpasto in source:docs/logging.txt |
---|
2986 | zooko@zooko.com**19700105140422 |
---|
2987 | Ignore-this: de0f9ceb8e0ca4c158492ad2f9a6ba6f |
---|
2988 | ] |
---|
2989 | [tests: fix comment |
---|
2990 | zooko@zooko.com**19700105101055 |
---|
2991 | Ignore-this: fabedea917895568b1fca75a480111b9 |
---|
2992 | ] |
---|
2993 | [tests: add tahoe_cp to the list of scripts that we don't actually have tests for yet |
---|
2994 | zooko@zooko.com**19700105100058 |
---|
2995 | Ignore-this: ac89583992fb1b48d9a4680344569d91 |
---|
2996 | ] |
---|
2997 | [setup: the .tac files created by create_node.py call pkg_resources.require() so that they can load tahoe and twisted packages which were installed with setuptools multi-version mode |
---|
2998 | zooko@zooko.com**19700101235005 |
---|
2999 | Ignore-this: e1db03f86e0407a91087d8ada6b477fd |
---|
3000 | Also the create_node.py script itself uses pkg_resources.require() for the same reason. |
---|
3001 | ] |
---|
3002 | [web/info: don't let an unrecoverable file break the page (show ? instead of a size) |
---|
3003 | warner@allmydata.com**20081107045117] |
---|
3004 | [checker: add is_recoverable() to checker results, make our stub immutable-verifier not throw an exception on unrecoverable files, add tests |
---|
3005 | warner@allmydata.com**20081107043547] |
---|
3006 | [monitor: update interface definition: get_status() can return a Failure |
---|
3007 | warner@allmydata.com**20081107035452] |
---|
3008 | [web/operations.py: if the operation failed, render the Failure |
---|
3009 | warner@allmydata.com**20081107035309] |
---|
3010 | [undoing test change for native_client.php |
---|
3011 | secorp@allmydata.com**20081106220310] |
---|
3012 | [NEWS: more minor edits |
---|
3013 | warner@allmydata.com**20081106223517] |
---|
3014 | [NEWS: minor edits |
---|
3015 | warner@allmydata.com**20081106223356] |
---|
3016 | [NEWS: mention SFTP server |
---|
3017 | warner@allmydata.com**20081106014153] |
---|
3018 | [client.py: oops, update FTP/SFTP config names to match current docs |
---|
3019 | warner@allmydata.com**20081106013442] |
---|
3020 | [remove duplicate+old docs/NEWS. The top-level NEWS file is the canonical one. |
---|
3021 | warner@allmydata.com**20081106013224] |
---|
3022 | [SFTP/FTP: merge user/account code, merge docs |
---|
3023 | warner@allmydata.com**20081106012558] |
---|
3024 | [docs: move webapi/ftp/sftp into a new frontends/ directory |
---|
3025 | warner@allmydata.com**20081105233050] |
---|
3026 | [ftp/sftp: move to a new frontends/ directory in preparation for factoring out password-auth component |
---|
3027 | warner@allmydata.com**20081105200733] |
---|
3028 | [sftpd: minor debug-logging tweak |
---|
3029 | warner@allmydata.com**20081105194511] |
---|
3030 | [confwiz.py - trying out a new configuration site |
---|
3031 | secorp@allmydata.com**20081105011830] |
---|
3032 | [ftpd: include an (unused) avatar logout callback |
---|
3033 | warner@allmydata.com**20081105000104] |
---|
3034 | [#531: implement an SFTP frontend. Mostly works, still lots of debug messages. Still needs tests and auth-by-pubkey in accounts.file |
---|
3035 | warner@allmydata.com**20081105000022] |
---|
3036 | [docs/ftp.txt: correct Twisted dependency: we don't need VFS, we can use a release, as long as you apply the patch |
---|
3037 | warner@allmydata.com**20081104235840] |
---|
3038 | [shebang: replace "/usr/bin/python" with "/usr/bin/env python" |
---|
3039 | zooko@zooko.com**20081105000306 |
---|
3040 | Ignore-this: 8ae33a8a7828fa7423422e252f2cfd74 |
---|
3041 | ] |
---|
3042 | [misc/fixshebangs.py |
---|
3043 | zooko@zooko.com**20081105000130 |
---|
3044 | Ignore-this: 13b03ea2d2ed8982f8346a827b46bd2e |
---|
3045 | ] |
---|
3046 | [util: copy in pyutil.fileutil.ReopenableNamedTemporaryFile |
---|
3047 | zooko@zooko.com**20081104234715 |
---|
3048 | Ignore-this: f1131e9b8f249b5f10be4cba2aeb6118 |
---|
3049 | ] |
---|
3050 | [immutable: tolerate filenode.read() with a size= that's too big, rather than hanging |
---|
3051 | warner@allmydata.com**20081104212919] |
---|
3052 | [util: copy in nummedobj from pyutil |
---|
3053 | zooko@zooko.com**20081104195550] |
---|
3054 | [util: copy in dictutil from pyutil |
---|
3055 | zooko@zooko.com**20081104195327] |
---|
3056 | [rollback change... move allmydatacontextmenu registration to installer.tmpl in tahoe-w32-client\installer |
---|
3057 | booker@allmydata.com**20081103213647] |
---|
3058 | [register the AllmydataContextMenu.dll for the context menu handler file sharing shell extension |
---|
3059 | booker@allmydata.com**20081103200027] |
---|
3060 | [debug catalog-shares: tolerate even more errors on bad files/directories |
---|
3061 | warner@allmydata.com**20081030215447] |
---|
3062 | [NEWS: update with all user-visible changes since the last update |
---|
3063 | warner@allmydata.com**20081030213604] |
---|
3064 | [#527: expire the cached files that are used to support Range: headers, every hour, when the file is unused and older than an hour |
---|
3065 | warner@allmydata.com**20081030203909] |
---|
3066 | [util/cachedir.py: add a cache-directory manager class, which expires+deletes unused files after a while |
---|
3067 | warner@allmydata.com**20081030200120] |
---|
3068 | [test_cli: try to fix windows again |
---|
3069 | warner@allmydata.com**20081030193204] |
---|
3070 | [debug/test_cli: fix error handling for catalog-shares, to make the test stop failing on windows |
---|
3071 | warner@allmydata.com**20081030190651] |
---|
3072 | [web: add 'Repair' button to checker results when they indicate unhealthyness. Also add the object's uri to the CheckerResults instance. |
---|
3073 | warner@allmydata.com**20081030010917] |
---|
3074 | [create_node.py: add 'web.static = public_html' to the initial tahoe.cfg |
---|
3075 | warner@allmydata.com**20081030001336] |
---|
3076 | [webapi: serve the /static URL tree from /public_html (configurable) |
---|
3077 | warner@allmydata.com**20081029223431] |
---|
3078 | [catalog-shares command: tolerate errors, log them to stderr, handle v2-immutable shares |
---|
3079 | warner@allmydata.com**20081029221010] |
---|
3080 | [test_web.py: one more line of test coverage |
---|
3081 | warner@allmydata.com**20081029050015] |
---|
3082 | [test_web: improve test coverage of PUT DIRURL t=uri replace=false |
---|
3083 | warner@allmydata.com**20081029045744] |
---|
3084 | [web: test (and fix) PUT DIRURL t=uri, which replaces a directory in-place with some other cap |
---|
3085 | warner@allmydata.com**20081029045446] |
---|
3086 | [web/directory.py: slight shuffle to improve test coverage |
---|
3087 | warner@allmydata.com**20081029045406] |
---|
3088 | [test_client.py: improve test coverage a bit |
---|
3089 | warner@allmydata.com**20081029044335] |
---|
3090 | [node.py: remove unused old_log() function |
---|
3091 | warner@allmydata.com**20081029043558] |
---|
3092 | [node.py: remove support for the old BASEDIR/authorized_keys.PORT file |
---|
3093 | warner@allmydata.com**20081029043420] |
---|
3094 | [move testutil into test/common_util.py, since it doesn't count as 'code under test' for our pyflakes numbers |
---|
3095 | warner@allmydata.com**20081029042831] |
---|
3096 | [util: move PollMixin to a separate file (pollmixin.py), so testutil can be moved into test/ |
---|
3097 | warner@allmydata.com**20081029041548] |
---|
3098 | [control.py: removed unused testutil.PollMixin |
---|
3099 | warner@allmydata.com**20081029040359] |
---|
3100 | [web/filenode: oops, fix test failures, not everything has a storage index |
---|
3101 | warner@allmydata.com**20081029011720] |
---|
3102 | [web/filenode: add Accept-Ranges and ETag (for immutable files) headers to GET responses |
---|
3103 | warner@allmydata.com**20081029010103] |
---|
3104 | [#527: respond to GETs with early ranges quickly, without waiting for the whole file to download. Fixes the alacrity problems with the earlier code. Still needs cache expiration. |
---|
3105 | warner@allmydata.com**20081029005618] |
---|
3106 | [#527: support HTTP 'Range:' requests, using a cachefile. Adds filenode.read(consumer, offset, size) method. Still needs: cache expiration, reduced alacrity. |
---|
3107 | warner@lothar.com**20081028204104] |
---|
3108 | [iputil.py: avoid a DNS lookup at startup (which may timeout tests when run on a partially-offline host) by using 198.41.0.4 instead of A.ROOT-SERVERS.NET |
---|
3109 | warner@lothar.com**20081028203646] |
---|
3110 | [interfaces.py: promote immutable.encode.NotEnoughSharesError.. it isn't just for immutable files any more |
---|
3111 | warner@lothar.com**20081027203449] |
---|
3112 | [interfaces.IMutableFileNode.download_best_version(): fix return value |
---|
3113 | warner@lothar.com**20081027202046] |
---|
3114 | [dirnode lookup: use distinct NoSuchChildError instead of the generic KeyError when a child can't be found |
---|
3115 | warner@lothar.com**20081027201525] |
---|
3116 | [storage: don't use colons in the corruption-advisory filename, since windows can't tolerate them |
---|
3117 | warner@lothar.com**20081026024633] |
---|
3118 | [mutable: call remove_advise_corrupt_share when we see share corruption in mapupdate/download/check, tolerate servers that do not implement it |
---|
3119 | warner@lothar.com**20081024202128] |
---|
3120 | [storage: add remote_advise_corrupt_share, for clients to tell storage servers about share corruption that they've discovered. The server logs the report. |
---|
3121 | warner@lothar.com**20081024185248] |
---|
3122 | [mutable/servermap.py: fix needs_merge(), it was incorrectly claiming that mixed shares with distinct seqnums needed a merge, causing repair(force=False) to fail |
---|
3123 | warner@lothar.com**20081024040024] |
---|
3124 | [test_web.test_POST_DIRURL_deepcheck: confirm that /operations/HANDLE/ works with or without the slash |
---|
3125 | warner@lothar.com**20081024021759] |
---|
3126 | [web/checker_results.py: remove dead code |
---|
3127 | warner@lothar.com**20081024001717] |
---|
3128 | [test_web: more test coverage |
---|
3129 | warner@lothar.com**20081024001118] |
---|
3130 | [webapi: fix t=rename from==to, it used to delete the file |
---|
3131 | warner@lothar.com**20081023233236] |
---|
3132 | [test_system: update test to match web checker results |
---|
3133 | warner@lothar.com**20081023233202] |
---|
3134 | [webapi deep-check: show the root as <root>, rather than an empty path string |
---|
3135 | warner@lothar.com**20081023230359] |
---|
3136 | [mutable/checker: announce the mapupdate op on the 'recent uploads+downloads' page |
---|
3137 | warner@lothar.com**20081023230319] |
---|
3138 | [scripts/create_node.py: remove empty-string defaults for --introducer= and --nickname= |
---|
3139 | warner@lothar.com**20081023230235] |
---|
3140 | [deep-check: add webapi links to detailed per-file/dir results |
---|
3141 | warner@lothar.com**20081023230031] |
---|
3142 | [interface.py: fix typo |
---|
3143 | warner@lothar.com**20081023225936] |
---|
3144 | [webapi: make the /operations/ 't=status' qualifier optional, remove it from examples |
---|
3145 | warner@lothar.com**20081023225658] |
---|
3146 | [setup: require the latest version of the setuptools bootstrap egg |
---|
3147 | zooko@zooko.com**20081025152858 |
---|
3148 | Ignore-this: c0c9923ba3008f410d5cc56f2236edb9 |
---|
3149 | ] |
---|
3150 | [setup: include _pkgutil.py in setuptools bootstrap egg so that it will work on Python 2.4 |
---|
3151 | zooko@zooko.com**20081025152839 |
---|
3152 | Ignore-this: 38d81a037c1a3413d69d580ccb13fd67 |
---|
3153 | ] |
---|
3154 | [setup: pretend the tahoe requires twisted to set up, so that twisted will be there for nevow |
---|
3155 | zooko@zooko.com**20081025135042 |
---|
3156 | Ignore-this: 4e6c7e580f7e30df571e2e63be663734 |
---|
3157 | ] |
---|
3158 | [setup: require the SVN snapshot of setuptools to build |
---|
3159 | zooko@zooko.com**20081025134959 |
---|
3160 | Ignore-this: f68077dd10d85a71a1e06678365e6753 |
---|
3161 | ] |
---|
3162 | [setup: remove old bundled setuptools-0.6c9 |
---|
3163 | zooko@zooko.com**20081025134947 |
---|
3164 | Ignore-this: 3a95dd72346a60b39ffd6ddfadd1b3a8 |
---|
3165 | ] |
---|
3166 | [setup: bundle an SVN snapshot of setuptools instead of the most recent stable release of setuptools |
---|
3167 | zooko@zooko.com**20081025134837 |
---|
3168 | Ignore-this: 9a0c9a34b186b972650cf9455edb0d28 |
---|
3169 | This SVN snapshot fixes a problem that prevents the setting up of nevow: |
---|
3170 | http://bugs.python.org/setuptools/issue20 |
---|
3171 | ] |
---|
3172 | [setup: reorder dependencies to be sort of increasing order of how much they depend on other stuff |
---|
3173 | zooko@zooko.com**20081025134739 |
---|
3174 | Ignore-this: 6d636aaf5deb37cbf18172824b0bbf87 |
---|
3175 | Not that the order makes any different to how it gets installed, as far as I can tell. |
---|
3176 | ] |
---|
3177 | [docs: add a note that when you make a new tahoe release, you should send the announcement to fuse-devel@lists.sourceforge.net |
---|
3178 | zooko@zooko.com**20081023213658] |
---|
3179 | [web/info.py: fix 'Check This Object' link, for files it was checking the parent directory by mistake |
---|
3180 | warner@lothar.com**20081022171056] |
---|
3181 | [#514: add meta-refresh=60 tag to t=status page for incomplete operations |
---|
3182 | warner@lothar.com**20081022164842] |
---|
3183 | [test_dirnode.py: oops, missed a Monitor(), unbreak tests |
---|
3184 | warner@lothar.com**20081022085054] |
---|
3185 | [immutable/filenode.py: add TODO note about the #514 monitor to check(), rather than going through the checker/verifier code and adding it, since Zooko is currently working on that code |
---|
3186 | warner@lothar.com**20081022084237] |
---|
3187 | [more #514: pass a Monitor to all checker operations, make mutable-checker honor the cancel flag |
---|
3188 | warner@lothar.com**20081022083818] |
---|
3189 | [dirnode.py: check for cancel during deep-traverse operations, and don't initiate any new ones if we've been cancelled. Gets us closer to #514. |
---|
3190 | warner@lothar.com**20081022075552] |
---|
3191 | [more #514 log-webop status/cancel: add handle-expiration, test coverage |
---|
3192 | warner@lothar.com**20081022051354] |
---|
3193 | [webapi.txt: improve t=deep-size output docs |
---|
3194 | warner@lothar.com**20081022005331] |
---|
3195 | [#514: improve test coverage |
---|
3196 | warner@lothar.com**20081022005256] |
---|
3197 | [Change deep-size/stats/check/manifest to a start+poll model instead of a single long-running synchronous operation. No cancel or handle-expiration yet. #514. |
---|
3198 | warner@lothar.com**20081022000307] |
---|
3199 | [setup: change ez_setup.py to install setuptools-0.6c9 |
---|
3200 | zooko@zooko.com**20080930200502] |
---|
3201 | [setup: bundle setuptools-0.6c9 |
---|
3202 | zooko@zooko.com**20080930200448] |
---|
3203 | [setup: remove bundled setuptools-0.6c8 |
---|
3204 | zooko@zooko.com**20080930200336] |
---|
3205 | [setup: remove the developer note about doing without GNU make (the GNU make requirement is about to hurt Peter if he tries to follow this doc, by the way) |
---|
3206 | zooko@zooko.com**20081021163200 |
---|
3207 | add classifiers showing with which versions of Python it is known to work. |
---|
3208 | ] |
---|
3209 | [* fuse/runtests: added --catch-up-pause option |
---|
3210 | robk-tahoe@allmydata.com**20081021002902 |
---|
3211 | |
---|
3212 | On linux, write tests are failing because data written to fuse isn't showing |
---|
3213 | up in tahoe by the time it's checked. it's not clear where this is originating, |
---|
3214 | since the fuse implementation [should be] waiting for completion of tahoe |
---|
3215 | operations before returning from its calls. This adds an option to control the |
---|
3216 | duration of a pause between the fuse write and the check of tahoe, which is by |
---|
3217 | default set to 2s on linux, which - somewhat inexplicably - seems to 'fix' the |
---|
3218 | problem, in as far as it allows tests to complete. |
---|
3219 | |
---|
3220 | ] |
---|
3221 | [fuse/runtests: include length in drepr() output |
---|
3222 | robk-tahoe@allmydata.com**20081021000159] |
---|
3223 | [fuse/runtests: make exceptions in 'read_in_random_order' into TestFailures |
---|
3224 | robk-tahoe@allmydata.com**20081020235235] |
---|
3225 | [fuse/blackmatch: added asynchronous (background) file download |
---|
3226 | robk-tahoe@allmydata.com**20081020233333 |
---|
3227 | |
---|
3228 | previously, upon opening a file for reading, the open() call would block |
---|
3229 | while the entire file was retrieved from tahoe into the cache directory. |
---|
3230 | This change adds a DownloaderWithReadQueue class, and associated plumbing, |
---|
3231 | such that an open() will return promptly with the download initiated 'in |
---|
3232 | the background'. Subsequent read() operations will block until enough |
---|
3233 | data has been downloaded to satisfy that request. This provides a behaviour |
---|
3234 | similar to streaming, i.e. the client application will be able to read |
---|
3235 | data from the fuse interface while the remainder of the file is still being |
---|
3236 | downloaded. |
---|
3237 | |
---|
3238 | ] |
---|
3239 | [fuse/runtests: added 'read_in_random_order' test |
---|
3240 | robk-tahoe@allmydata.com**20081020232427 |
---|
3241 | |
---|
3242 | this test uploads a test file to tahoe, and then reads the file from fuse, |
---|
3243 | but reads the blocks of the file in a random order; this is designed to |
---|
3244 | exercise the asynchronous download feature of blackmatch - where the file |
---|
3245 | is downloaded from tahoe asynchronously, and rather than blocking open() |
---|
3246 | for the entirety of the download, instead individual read() calls are |
---|
3247 | blocked until enough of the file has been downloaded to satisfy them |
---|
3248 | ] |
---|
3249 | [fuse/runtests: added a --no-cleanup option |
---|
3250 | robk-tahoe@allmydata.com**20081020155120 |
---|
3251 | |
---|
3252 | the code had a 'fullcleanup' flag internally which controlled whether |
---|
3253 | working directories were cleaned up. this promotes that to a command |
---|
3254 | line option (negated) '--no-cleanup' defaulting to False, i.e. do cleanup |
---|
3255 | ] |
---|
3256 | [fuse/runtests: truncate expected file contents in reported error message |
---|
3257 | robk-tahoe@allmydata.com**20081020144523 |
---|
3258 | |
---|
3259 | this avoids dumping the repr of 1Mb of random data to stdout in the event |
---|
3260 | of a test failure, but rather just dumps the start/end of the errant strings |
---|
3261 | if the amount of data is > 200 chars repr'd |
---|
3262 | ] |
---|
3263 | [fuse/blackmatch: fix platform specific problems in repr_flags |
---|
3264 | robk-tahoe@allmydata.com**20081020143052 |
---|
3265 | |
---|
3266 | the repr_flags debug/logging function had a list of fields from the os |
---|
3267 | module that might be passed into an open() call, but it included at |
---|
3268 | least one which was available on the mac but not on linux. symmetrically |
---|
3269 | linux has numerous flags which are not present on the mac. the repr_flags |
---|
3270 | function is now tolerant of flags not being present, and has an expanded |
---|
3271 | list of flags |
---|
3272 | ] |
---|
3273 | [makefile: added 'fuse-test' target to makefile, to run 'runtests' |
---|
3274 | robk-tahoe@allmydata.com**20081019132518] |
---|
3275 | [fuse/runtests: added a 'todo' flag, surpressing failure for implementations not expected to pass |
---|
3276 | robk-tahoe@allmydata.com**20081019131600 |
---|
3277 | |
---|
3278 | since the current tests assume that the implementation responds to changes made |
---|
3279 | to tahoe after mount, and impl_b prefetches and cached directory data, impl_b |
---|
3280 | fails the current 'read' test suite. |
---|
3281 | |
---|
3282 | rather than reflect that problem in the overall failure of the runtests exit |
---|
3283 | code, this adds a 'todo' flag to the implementations table, and sets the todo |
---|
3284 | flag for impl_b. Thus errors will therein be reported in output, but not cause |
---|
3285 | a failing exit code. |
---|
3286 | ] |
---|
3287 | [fuse/runtests: made runtests exit code depend on success |
---|
3288 | robk-tahoe@allmydata.com**20081017180058 |
---|
3289 | |
---|
3290 | return an exit code of 0 only if no tests failed, and 1 in the case of |
---|
3291 | linkage error, test setup failure, or individual test case failure |
---|
3292 | |
---|
3293 | ] |
---|
3294 | [storage.py: assert that immutable share size will fit in the 4-byte v1 container (see #346). The struct module in py2.4 raises an error on overflow, but py2.5 merely emits a warning |
---|
3295 | warner@lothar.com**20081020172208] |
---|
3296 | [NEWS: update to summarize all changes since the last update |
---|
3297 | warner@lothar.com**20081020164047] |
---|
3298 | [fuse/runtest: make removal of webport file soft |
---|
3299 | robk-tahoe@allmydata.com**20081017030154 |
---|
3300 | |
---|
3301 | previously the runtests suite removed the webport file created by |
---|
3302 | tahoe create-client in all but the first node. now that the node config |
---|
3303 | is in tahoe.cfg by default this file might not exist. |
---|
3304 | ] |
---|
3305 | [fuse/blackmatch: update json handling to support simplejson v2 |
---|
3306 | robk-tahoe@allmydata.com**20081017025931 |
---|
3307 | |
---|
3308 | simplejson v2 returns strings as either unicode or str, depending upon its |
---|
3309 | mood. thus the interpretation of the node's json repr of a directory, and |
---|
3310 | the serialisation of strings in the json based rpc both exploded when built |
---|
3311 | against simplejson v2. this makes both of these places liberal in their |
---|
3312 | acceptance of either str or unicode. |
---|
3313 | ] |
---|
3314 | [fuse/blackmatch: log exception in server startup |
---|
3315 | robk-tahoe@allmydata.com**20081017014650 |
---|
3316 | |
---|
3317 | humphf. my build runs the fuse stuff fine, but the build from the buildslave |
---|
3318 | doesn't seem to start up properly. hopefully this will elicit some useful info |
---|
3319 | ] |
---|
3320 | [fuse/blackmatch: add readability to some logging, fix a permissions problem |
---|
3321 | robk-tahoe@allmydata.com**20081017004421 |
---|
3322 | |
---|
3323 | adds a couple of functions to unpack 'mode' and 'flags' for open() calls, to |
---|
3324 | facilitate debugging. |
---|
3325 | |
---|
3326 | adds a fix to ensure that all tmp files created for writing are opened with |
---|
3327 | permissions 0600 - one problem I had with testing with the Finder was that |
---|
3328 | files were being opened write only (0200) and were then failing to upload |
---|
3329 | to tahoe due to internal permission denied errors. |
---|
3330 | |
---|
3331 | there remain a variety of problems with finder access which I'm unable to |
---|
3332 | comprehend at this time. sometimes copies to tahoe will work fine, sometimes |
---|
3333 | they yield "the finder cannot complete the operation because some data ... |
---|
3334 | could not be read or written. (Error code -36)" sometimes "You may need to |
---|
3335 | enter the name and password for an administrator on this computer to change |
---|
3336 | the item" sometimes "The operation cannot be completed because an item with |
---|
3337 | the name ... already exists." and sometimes "The operation cannot be completed |
---|
3338 | because the item ... is locked." What seems to be absent is rhyme or reason. |
---|
3339 | |
---|
3340 | unix operations (cp, mv) work fine, rsync works fine. |
---|
3341 | |
---|
3342 | ] |
---|
3343 | [fuse/blackmatch: fix linkage problems with daemonize |
---|
3344 | robk-tahoe@allmydata.com**20081016163637 |
---|
3345 | |
---|
3346 | the daemonize() function imported from twisted was causing problems when |
---|
3347 | run from a frozen (py2app) build. I simply copied the daemonize function |
---|
3348 | into this file, and that fixes the problem. |
---|
3349 | |
---|
3350 | also removed a couple of lines of debugging spam that slipped through. |
---|
3351 | |
---|
3352 | ] |
---|
3353 | [gui/macapp: minor bugfixes |
---|
3354 | robk-tahoe@allmydata.com**20081016163052 |
---|
3355 | |
---|
3356 | though it seemed to work before the 'fstype' passed to fuse of 'allmydata' was |
---|
3357 | today throwing errors that len(fstype) must be at most 7. |
---|
3358 | |
---|
3359 | fixed a typo in changes to 'mount_filesystem()' args |
---|
3360 | |
---|
3361 | bumped the delay between mounting a filesystem and 'open'ing it in Finder to |
---|
3362 | 4s, as it seems to take a little longer to mount now the client and server |
---|
3363 | fuse processes need to coordinate. |
---|
3364 | ] |
---|
3365 | [fuse/blackmatch: split into client/server (twisted server) |
---|
3366 | robk-tahoe@allmydata.com**20081016150846 |
---|
3367 | |
---|
3368 | This implements a client/server split for blackmatch, where the client |
---|
3369 | implements the fuse_main bindings and a simple blocking rpc client mechanism. |
---|
3370 | The server implements the other half of that rpc mechanism, and contains all |
---|
3371 | the actual logic for interpreting fuse requests in the context of the on disk |
---|
3372 | cache and requests to the tahoe node. The server is based on a twisted reactor. |
---|
3373 | |
---|
3374 | The rpc mechanism implements a simple method dispatch including marshalling, |
---|
3375 | using json, of basic inert data types, in a flat namespace (no objects). |
---|
3376 | The client side is written in a blocking idiom, to interface with the threading |
---|
3377 | model used by the fuse_main bindings, whereas the server side is written for a |
---|
3378 | twisted reactor-based environment, intended to facilitate implementing more |
---|
3379 | sophisticated logic in that paradigm. The two communicate over a unix domain |
---|
3380 | socket, allocated within the nodedir. |
---|
3381 | |
---|
3382 | Command line usage is unchanged; the server is launched automatically by the |
---|
3383 | client. The server daemonizes itself, to avoid preventing the original parent |
---|
3384 | process (e.g. 'runtests') from waiting upon the server exiting. |
---|
3385 | |
---|
3386 | The client keeps open a 'keepalive' connection to the server; upon loss thereof |
---|
3387 | the server will exit. This addresses the fact that the python-fuse bindings |
---|
3388 | provide no notification of exit of the client process upon unmount. |
---|
3389 | |
---|
3390 | The client thus provides a relatively thin 'shim' proxying requests from the |
---|
3391 | fuse_main bindings across the rpc to the server process, which handles the |
---|
3392 | logic behind each request. |
---|
3393 | |
---|
3394 | For the time being, a '--no-split' option is provided to surpress the splitting |
---|
3395 | into client/server, yielding the prior behaviour. Once the server logic gets |
---|
3396 | more complex and more entrenched in a twisted idiom, this might be removed. |
---|
3397 | The 'runtests' test harness currently tests both modes, as 'impl_c' and |
---|
3398 | 'impl_c_no_split' |
---|
3399 | |
---|
3400 | ] |
---|
3401 | [fuse/blackmatch: 'flatten' the fuse api implementation |
---|
3402 | robk-tahoe@allmydata.com**20081016143547 |
---|
3403 | |
---|
3404 | the previous revision of blackmatch used a file_class to delegate all fuse |
---|
3405 | api operations on files to a specific per-file class, which is an option |
---|
3406 | given by the python-fuse bindings. |
---|
3407 | |
---|
3408 | this is a pre-cursor to the 'split' client/server version, which uses a |
---|
3409 | simple, moreover flat, rpc mechanism to broker access to methods. |
---|
3410 | ] |
---|
3411 | [fuse/runtests: disable impl_a/impl_b on mac, as they don't actually work. |
---|
3412 | robk-tahoe@allmydata.com**20081016143232] |
---|
3413 | [fuse/runtests: added write_partial_overwrite test |
---|
3414 | robk-tahoe@allmydata.com**20081016142926 |
---|
3415 | |
---|
3416 | this tests opening a file for update, overwriting a small part of it, and |
---|
3417 | ensuring that the end result constitutes an overwrite of the original file. |
---|
3418 | This tests, e.g. the implementation doesn' open a 'fresh' file but does in |
---|
3419 | fact initialise the file to be uploaded with the contents of any extant |
---|
3420 | file before applying updates |
---|
3421 | |
---|
3422 | ] |
---|
3423 | [fuse/runtests: added --tests, renamed --suites |
---|
3424 | robk-tahoe@allmydata.com**20081016142836 |
---|
3425 | |
---|
3426 | changed the --tests option to be --suites, as it takes a prefix, e.g. 'read' |
---|
3427 | 'write' (or 'all', the default) and runs those suites which are applicable to |
---|
3428 | each implementation being tested. |
---|
3429 | |
---|
3430 | added a --tests option, which takes a list of tests, e.g. 'read_file_contents' |
---|
3431 | 'write_overlapping_large_writes' and runs all tests specified without regard |
---|
3432 | to whether the implementation(s) under test are declared to support them. |
---|
3433 | |
---|
3434 | this is basically to allow a specific test or two to be run, saving time |
---|
3435 | during development and debugging by not running the entire suite |
---|
3436 | ] |
---|
3437 | [fuse/runtests: added 'random scatter' write test |
---|
3438 | robk-tahoe@allmydata.com**20081003233436 |
---|
3439 | |
---|
3440 | this writes the test file in a randomised order, with randomly sized writes. |
---|
3441 | also for each 'slice' of the file written, a randomly chosen overlapping |
---|
3442 | write is also made to the file. this ensures that the file will be written |
---|
3443 | in its entirety in a thoroughly random order, with many overlapping writes. |
---|
3444 | ] |
---|
3445 | [fuse/runtests: add overlapping write tests |
---|
3446 | robk-tahoe@allmydata.com**20081003224833 |
---|
3447 | |
---|
3448 | using both small and large blocksizes for writes, write a 1Mb file to fuse |
---|
3449 | where every write overlaps another. |
---|
3450 | |
---|
3451 | This serves a useful purpose - in manual testing of blackmatch some time ago |
---|
3452 | most operations e.g. bulk copies, worked fine, but using rsync caused data |
---|
3453 | corruption on most files. it turned out to be that rsync writes in 64K blocks, |
---|
3454 | but rather than making the last block short, the last block instead overlaps |
---|
3455 | the preceding (already written) block. This revealed a problem where cache |
---|
3456 | files were being opened 'append' rather than 'write' and hence the overlapping |
---|
3457 | write to the fuse layer caused the overlapping portion of the file to be |
---|
3458 | duplicated in cache, leading to oversized and corrupt files being uploaded. |
---|
3459 | ] |
---|
3460 | [fuse/runtests: remove write small file test, as it's subsumed by the tiny_file test |
---|
3461 | robk-tahoe@allmydata.com**20081003223944] |
---|
3462 | [fuse/runtests: added linear write tests for various block sizes |
---|
3463 | robk-tahoe@allmydata.com**20081003223550 |
---|
3464 | |
---|
3465 | unit tests to test writing contiguous blocks linearly through the file, |
---|
3466 | for a variety of block sizes; 'tiny_file' is an entire file fitting within |
---|
3467 | a single io block / write operation. 'linear_{small,large}_writes' test |
---|
3468 | a 1Mb file written with each write operation containing significantly less |
---|
3469 | or more, respecitvely, data than fuse will pass into the implementation as |
---|
3470 | a single operation (which on the mac at least is 64Kib) |
---|
3471 | ] |
---|
3472 | [fuse/runtests: add a very simple 'write' test |
---|
3473 | robk-tahoe@allmydata.com**20081003172044 |
---|
3474 | |
---|
3475 | this performs a very simple write through the fuse layer and confirms that |
---|
3476 | the file is stored correctly into the tahoe mesh. ('simple' in the sense |
---|
3477 | that the entire file body fits trivially in a single write() operation, |
---|
3478 | disk block etc) |
---|
3479 | ] |
---|
3480 | [fuse/runtests: added a --web-open option |
---|
3481 | robk-tahoe@allmydata.com**20081003172026 |
---|
3482 | |
---|
3483 | similar to the --debug-wait option which causes the test harness to |
---|
3484 | pause at various stages of the process to facilitate debugging, this |
---|
3485 | option simplifies that debugging by automatically opening a web browser |
---|
3486 | to the root dir of that implementation's tests when tests are commenced. |
---|
3487 | |
---|
3488 | in addition, if --web-open is specfied but --debug-wait is not, the |
---|
3489 | harness will still pause after running tests but before tearing down |
---|
3490 | the tahoe grid - this allows all tests to run to completion, but |
---|
3491 | provide a debugging hook to investigate the end state of the grid's |
---|
3492 | contents thereafter. |
---|
3493 | ] |
---|
3494 | [fuse/impl_a: fix a suspected bug in caching |
---|
3495 | robk-tahoe@allmydata.com**20081003171309 |
---|
3496 | |
---|
3497 | from my examination of the tahoe_fuse ('impl_a') code, it looks like |
---|
3498 | the intention is to cache the file contents in memory while it's open, |
---|
3499 | since it does in fact do that. however it looks like it also ignored |
---|
3500 | that cache entirely, and made an individual tahoe webapi GET request |
---|
3501 | for each and every read() operation regardless of the relative size of |
---|
3502 | the read block and the file in question. |
---|
3503 | |
---|
3504 | this changes that to make read() use the data in memory rather than |
---|
3505 | fetch the data over again. if there's something more subtle going |
---|
3506 | on, please let me know. |
---|
3507 | ] |
---|
3508 | [gui/macapp: slew of code cleanup; unmount filesystems on quit |
---|
3509 | robk-tahoe@allmydata.com**20080925233235 |
---|
3510 | |
---|
3511 | a handful of code cleanup, renaming and refactoring. basically consolidating |
---|
3512 | 'application logic' (mount/unmount fs) into the 'MacGuiApp' class (the wx.App) |
---|
3513 | and cleaning up various scoping things around that. renamed all references to |
---|
3514 | 'app' to refer more clearly to the 'AppContainer' or to the guiapp. |
---|
3515 | |
---|
3516 | globally renamed basedir -> nodedir |
---|
3517 | |
---|
3518 | also made the guiapp keep a note of each filesystem it mounts, and unmount |
---|
3519 | them upon 'quit' so as to cleanup the user's environment before the tahoe node |
---|
3520 | vanishes from out underneath the orphaned tahoe fuse processes |
---|
3521 | |
---|
3522 | ] |
---|
3523 | [gui/macapp: make submenu of aliases for 'webopen' |
---|
3524 | robk-tahoe@allmydata.com**20080925163919 |
---|
3525 | |
---|
3526 | this changes the 'open webroot' menu item to be a submenu listing all aliases |
---|
3527 | defined in ~/.tahoe. Note that the dock menu does not support submenus, so it |
---|
3528 | only offers a single 'open webroot' option for the default tahoe: alias. |
---|
3529 | |
---|
3530 | I had trouble with this at first and concluded that the submenus didn't work, |
---|
3531 | and made it a distinct 'WebUI' menu in it's own right. on further inspection, |
---|
3532 | there are still problems but they seem to be something like once the dock menu |
---|
3533 | has been used, sometimes the app's main menubar menus will cease to function, |
---|
3534 | and this happens regardless of whether submenus or plain simple menus are used. |
---|
3535 | I have no idea what the peoblem is, but it's not submenu specific. |
---|
3536 | ] |
---|
3537 | [repairer: fix flaw in testutil.flip_one_bit() that Brian pointed out |
---|
3538 | zooko@zooko.com**20081016194848] |
---|
3539 | [misc/incident-gatherer: add classify_tahoe.py: a foolscap incident-gatherer classification plugin |
---|
3540 | warner@allmydata.com**20081015220940] |
---|
3541 | [repairer: test all different kinds of corruption that can happen to share files on disk |
---|
3542 | zooko@zooko.com**20081014230920] |
---|
3543 | [util/time_format.py: accept space separator, add unit tests |
---|
3544 | warner@allmydata.com**20081013225258] |
---|
3545 | [test_storage: use different filenames, poor stupid windows |
---|
3546 | warner@allmydata.com**20081010021139] |
---|
3547 | [scripts/debug.py: emit the immutable-share version number, tolerate v2 |
---|
3548 | warner@allmydata.com**20081010013422] |
---|
3549 | [storage.py: improve some precondition() error messages |
---|
3550 | warner@allmydata.com**20081010011425] |
---|
3551 | [storage: introduce v2 immutable shares, with 8-byte offsets fields, to remove two of the three size limitations in #346. This code handles v2 shares but does not generate them. We'll make a release with this v2-tolerance, wait a while, then make a second release that actually generates v2 shares, to avoid compatibility problems. |
---|
3552 | warner@allmydata.com**20081010011327] |
---|
3553 | [debug.py: oops, add missing import for ReadBucketProxy |
---|
3554 | warner@allmydata.com**20081010002922] |
---|
3555 | [storage: split WriteBucketProxy and ReadBucketProxy out into immutable/layout.py . No behavioral changes. |
---|
3556 | warner@allmydata.com**20081010000800] |
---|
3557 | [interfaces: loosen a few max-size constraints which would limit us to a mere 1.09 TB maximum file size |
---|
3558 | zooko@zooko.com**20081009191357 |
---|
3559 | |
---|
3560 | These constraints were originally intended to protect against attacks on the |
---|
3561 | storage server protocol layer which exhaust memory in the peer. However, |
---|
3562 | defending against that sort of DoS is hard -- probably it isn't completely |
---|
3563 | achieved -- and it costs development time to think about it, and it sometimes |
---|
3564 | imposes limits on legitimate users which we don't necessarily want to impose. |
---|
3565 | So, for now we forget about limiting the amount of RAM that a foolscap peer can |
---|
3566 | cause you to start using. |
---|
3567 | |
---|
3568 | ] |
---|
3569 | [util/limiter: add a repr |
---|
3570 | warner@allmydata.com**20081007201945] |
---|
3571 | [dirnode.build_manifest: include node.list in the limiter, that's the most important thing to slow down |
---|
3572 | warner@allmydata.com**20081007201929] |
---|
3573 | [web/directory: t=manifest output=html: make the caps into clickable hrefs |
---|
3574 | warner@allmydata.com**20081007201845] |
---|
3575 | [web/directory: factor out the get_root function |
---|
3576 | warner@allmydata.com**20081007201742] |
---|
3577 | [web/directory.py: remove unused imports |
---|
3578 | warner@allmydata.com**20081007194820] |
---|
3579 | [test_web: deep-size is more variable than I thought, so assert less |
---|
3580 | warner@allmydata.com**20081007051147] |
---|
3581 | [web: change t=manifest to return a list of (path,read/writecap) tuples, instead of a list of verifycaps. Add output=html,text,json. |
---|
3582 | warner@allmydata.com**20081007043618] |
---|
3583 | [web: rewrite t=deep-size in terms of deep-stats, update test to match inclusion of directory sizes |
---|
3584 | warner@allmydata.com**20081007043539] |
---|
3585 | [ftpd: hush pyflakes |
---|
3586 | warner@allmydata.com**20081007014513] |
---|
3587 | [ftpd: make sure we're using a patched/fixed Twisted, to avoid confusion later |
---|
3588 | warner@allmydata.com**20081007011411] |
---|
3589 | [ftp: change the twisted hack necessary for async-write-close, to one more agreeable to the twisted-dev folks, add a copy of the necessary patch to docs/ftp.txt |
---|
3590 | warner@allmydata.com**20081007010605] |
---|
3591 | [ftpd: remove debug messages |
---|
3592 | warner@allmydata.com**20081006231620] |
---|
3593 | [ftpd: add native_client.php -based HTTP authentication scheme |
---|
3594 | warner@allmydata.com**20081006231511] |
---|
3595 | [ftpd: add ftp.accounts checker, remove InMemoryPasswordChecker |
---|
3596 | warner@allmydata.com**20081006225124] |
---|
3597 | [test_system: add test coverage for immutable download.ConsumerAdapter, remove debug messages |
---|
3598 | warner@allmydata.com**20081006225037] |
---|
3599 | [ftp server: initial implementation. Still needs unit tests, custom Twisted patches. For #512 |
---|
3600 | warner@allmydata.com**20081006195236] |
---|
3601 | [test_cli.py: remove unused imports |
---|
3602 | warner@allmydata.com**20081007004204] |
---|
3603 | [CLI: remove 'tahoe admin generate-keypair', since the pycryptopp ecdsa API is about to change incompatibly. We'll undo this once pycryptopp is updated |
---|
3604 | warner@allmydata.com**20081007002320] |
---|
3605 | [docs: update architecture.txt 's section on the vdrive a.k.a. filesystem layer |
---|
3606 | zooko@zooko.com**20081006210500 |
---|
3607 | Remove some obsolete parts (correct at the time, now incorrect), change terminology to reflect my preference: s/vdrive/filesystem/ and s/dirnode/directory/, and make a few other small changes. |
---|
3608 | ] |
---|
3609 | [dirnode: fix my remarkably-consistent 'metdadata' typo |
---|
3610 | warner@allmydata.com**20081003010845] |
---|
3611 | [interfaces: fix minor typo |
---|
3612 | warner@allmydata.com**20081003005249] |
---|
3613 | [dirnode: add get_child_and_metadata_at_path |
---|
3614 | warner@allmydata.com**20081003005203] |
---|
3615 | [stop using 'as' as an identifier: as with 'with', 'as' has become a reserved word in python 2.6 |
---|
3616 | warner@allmydata.com**20081003002749] |
---|
3617 | [scripts/admin: split up generate_keypair code so that unit tests can use it more easily |
---|
3618 | warner@allmydata.com**20081001235238] |
---|
3619 | [docs: add some notes about things to do for a Tahoe release on pypi, freshmeat, and launchpad |
---|
3620 | zooko@zooko.com**20081001210703] |
---|
3621 | [misc/cpu-watcher.tac: use writeaside-and-rename for the history.pickle file |
---|
3622 | warner@allmydata.com**20081001003053] |
---|
3623 | [misc/spacetime: use async polling so we can add a 60-second timeout, add an index to the 'url' Axiom column for 2x speedup |
---|
3624 | warner@allmydata.com**20080930233448] |
---|
3625 | [#518: replace various BASEDIR/* config files with a single BASEDIR/tahoe.cfg, with backwards-compatibility of course |
---|
3626 | warner@allmydata.com**20080930232149] |
---|
3627 | [tolerate simplejson-2.0.0 and newer, which frequently return bytestrings instead of unicode objects. Closes #523 |
---|
3628 | warner@allmydata.com**20080930222106] |
---|
3629 | [munin/tahoe_doomsday: oops, tolerate 'null' in the timeleft results, to unbreak the 2wk/4wk graphs |
---|
3630 | warner@allmydata.com**20080930202051] |
---|
3631 | [test_node: improve coverage of advertised_ip_addresses a bit |
---|
3632 | warner@allmydata.com**20080930060816] |
---|
3633 | [testutil.PollMixin: set default timeout (to 100s), emit a more helpful error when the timeout is hit |
---|
3634 | warner@allmydata.com**20080930052309] |
---|
3635 | [repair: fix test to map from storage index to directory structure properly (thanks, cygwin buildbot, for being so kloodgey that you won't accept random binary filenames and thus making me notice this bug) |
---|
3636 | zooko@zooko.com**20080926224913] |
---|
3637 | [repairer: assert that the test code isn't accidentally allowing the repairer code which is being tested to do impossible things |
---|
3638 | zooko@zooko.com**20080926222353] |
---|
3639 | [repairer: enhance the repairer tests |
---|
3640 | zooko@zooko.com**20080926174719 |
---|
3641 | Make sure the file can actually be downloaded afterward, that it used one of the |
---|
3642 | deleted and then repaired shares to do so, and that it repairs from multiple |
---|
3643 | deletions at once (without using more than a reasonable amount of calls to |
---|
3644 | storage server allocate). |
---|
3645 | ] |
---|
3646 | [netstring: add required_trailer= argument |
---|
3647 | warner@allmydata.com**20080926165754] |
---|
3648 | [test_netstring.py: move netstring tests to a separate file |
---|
3649 | warner@allmydata.com**20080926165526] |
---|
3650 | [move netstring() and split_netstring() into a separate util.netstring module |
---|
3651 | warner@allmydata.com**20080926043824] |
---|
3652 | [repairer: remove a test that doesn't apply to the repair-from-corruption case |
---|
3653 | zooko@zooko.com**20080925220954] |
---|
3654 | [repairer: add a test that repairer fixes corrupted shares (in addition to the test that it fixes deleted shares) |
---|
3655 | zooko@zooko.com**20080925220712] |
---|
3656 | [docs: proposed mutable file crypto design with ECDSA, 96-bit private keys, and semi-private keys (from http://allmydata.org/~zooko/lafs.pdf ) |
---|
3657 | zooko@zooko.com**20080925213457] |
---|
3658 | [docs: mutable file crypto design (from http://allmydata.org/~zooko/lafs.pdf ) |
---|
3659 | zooko@zooko.com**20080925213433] |
---|
3660 | [repairer: fix swapped docstrings; thanks Brian |
---|
3661 | zooko@zooko.com**20080925182436] |
---|
3662 | [trivial: remove unused imports; thanks, pyflakes |
---|
3663 | zooko@zooko.com**20080925180422] |
---|
3664 | [trivial: remove unused imports -- thanks, pyflakes |
---|
3665 | zooko@zooko.com**20080925173453] |
---|
3666 | [repairer: add basic test of repairer, move tests of immutable checker/repairer from test_system to test_immutable_checker, remove obsolete test helper code from test_filenode |
---|
3667 | zooko@zooko.com**20080925171653 |
---|
3668 | Hm... "Checker" ought to be renamed to "CheckerRepairer" or "Repairer" at some point... |
---|
3669 | ] |
---|
3670 | [setup: remove a few minimal unit tests from test_filenode which have been obviated by much better tests in test_mutable and test_system |
---|
3671 | zooko@zooko.com**20080925161544] |
---|
3672 | [gui/macapp: rough cut of ui tweaks; configurability, auto-mount |
---|
3673 | robk-tahoe@allmydata.com**20080925141224 |
---|
3674 | |
---|
3675 | chatting with peter, two things the mac gui needed were the ability to mount |
---|
3676 | the 'allmydata drive' automatically upon launching the app, and open the |
---|
3677 | Finder to reveal it. (also a request to hide the debug 'open webroot' stuff) |
---|
3678 | |
---|
3679 | this (somewhat rough) patch implements all the above as default behaviour |
---|
3680 | |
---|
3681 | it also contains a quick configuration mechanism for the gui - rather than a |
---|
3682 | preferences gui, running with a more 'tahoe' styled mechanism, the contents |
---|
3683 | of a few optional files can modify the default behaviour, specifically file |
---|
3684 | in ~/.tahoe/gui.conf control behaviour as follows: |
---|
3685 | |
---|
3686 | auto-mount (bool): if set (the default) then the mac app will, upon launch |
---|
3687 | automatically mount the 'tahoe:' alias with the display name 'Allmydata' |
---|
3688 | using a mountpoint of ~/.tahoe/mnt/__auto__ |
---|
3689 | |
---|
3690 | auto-open (bool): if set (the default) then upon mounting a file system |
---|
3691 | (including the auto-mount if set) finder will be opened to the mountpoint |
---|
3692 | of the filesystem, which essentially reveals the newly mounted drive in a |
---|
3693 | Finder window |
---|
3694 | |
---|
3695 | show-webopen (bool): if set (false by default) then the 'open webroot' |
---|
3696 | action will be made available in both the dock and file menus of the app |
---|
3697 | |
---|
3698 | daemon-timout (int): sets the daemon-timeout option passed into tahoe fuse |
---|
3699 | when a filesystem is mounted. this defaults to 5 min |
---|
3700 | |
---|
3701 | files of type (int) much, naturally contain a parsable int representation. |
---|
3702 | files of type (bool) are considered true if their (case-insensitive) contents |
---|
3703 | are any of ['y', 'yes', 'true', 'on', '1'] and considered false otherwise. |
---|
3704 | |
---|
3705 | ] |
---|
3706 | [gui/macapp: improve 'about' box |
---|
3707 | robk-tahoe@allmydata.com**20080925135415 |
---|
3708 | |
---|
3709 | adds exactly 1 metric dollop of professionalism to the previously |
---|
3710 | rather amateurish looking about box. |
---|
3711 | ] |
---|
3712 | [fuse/impl_c: UNDO --auto-fsid option |
---|
3713 | robk-tahoe@allmydata.com**20080925134730 |
---|
3714 | |
---|
3715 | rolling back: |
---|
3716 | |
---|
3717 | Thu Sep 25 14:42:23 BST 2008 robk-tahoe@allmydata.com |
---|
3718 | * fuse/impl_c: add --auto-fsid option |
---|
3719 | |
---|
3720 | this was inspired by reading the fuse docs and discovering the 'fsid' option |
---|
3721 | to fuse_main, and was _intended_ to support a sort of 'stability' to the |
---|
3722 | filesystem (specifically derived from the root-uri mounted, whether directly |
---|
3723 | or via an alias) to support mac aliases across unmount/remount etc. |
---|
3724 | |
---|
3725 | some experimentation shows that that doesn't actually work, and that, at |
---|
3726 | least for mac aliases in my testing, they're tied to path-to-mountpoint and |
---|
3727 | not to the fsid - which seems to have no bearing. perhaps the 'local' flag |
---|
3728 | is causing weirdness therein. |
---|
3729 | |
---|
3730 | at any rate, I'm recording it simply for posterity, in case it turns out to |
---|
3731 | be useful after all somewhere down the road. |
---|
3732 | |
---|
3733 | |
---|
3734 | M ./contrib/fuse/impl_c/blackmatch.py +13 |
---|
3735 | ] |
---|
3736 | [fuse/impl_c: add --auto-fsid option |
---|
3737 | robk-tahoe@allmydata.com**20080925134223 |
---|
3738 | |
---|
3739 | this was inspired by reading the fuse docs and discovering the 'fsid' option |
---|
3740 | to fuse_main, and was _intended_ to support a sort of 'stability' to the |
---|
3741 | filesystem (specifically derived from the root-uri mounted, whether directly |
---|
3742 | or via an alias) to support mac aliases across unmount/remount etc. |
---|
3743 | |
---|
3744 | some experimentation shows that that doesn't actually work, and that, at |
---|
3745 | least for mac aliases in my testing, they're tied to path-to-mountpoint and |
---|
3746 | not to the fsid - which seems to have no bearing. perhaps the 'local' flag |
---|
3747 | is causing weirdness therein. |
---|
3748 | |
---|
3749 | at any rate, I'm recording it simply for posterity, in case it turns out to |
---|
3750 | be useful after all somewhere down the road. |
---|
3751 | |
---|
3752 | ] |
---|
3753 | [manhole: be more tolerant of authorized_keys. files in .tahoe |
---|
3754 | robk-tahoe@allmydata.com**20080925031149 |
---|
3755 | |
---|
3756 | both peter and I independently tried to do the same thing to eliminate the |
---|
3757 | authorized_keys file which was causing problems with the broken mac build |
---|
3758 | (c.f. #522) namely mv authorized_keys.8223{,.bak} but the node is, ahem, |
---|
3759 | let's say 'intolerant' of the trailing .bak - rather than disable the |
---|
3760 | manhole as one might expect, it instead causes the node to explode on |
---|
3761 | startup. this patch makes it skip over anything that doesn't pass the |
---|
3762 | 'parse this trailing stuff as an int' test. |
---|
3763 | ] |
---|
3764 | [fuse/impl_c: move mac tahoefuse impl out into contrib/fuse |
---|
3765 | robk-tahoe@allmydata.com**20080925014214 |
---|
3766 | |
---|
3767 | For a variety of reasons, high amongst them the fact that many people |
---|
3768 | interested in fuse support for tahoe seem to have missed its existence, |
---|
3769 | the existing fuse implementation for tahoe, previously 'mac/tahoefuse.py' |
---|
3770 | has been renamed and moved. |
---|
3771 | |
---|
3772 | It was suggested that, even though the mac build depends upon it, that |
---|
3773 | the mac/tahoefuse implementation be moved into contrib/fuse along with |
---|
3774 | the other fuse implementations. The fact that it's not as extensively |
---|
3775 | covered by unit tests as mainline tahoe was given as corroboration. |
---|
3776 | |
---|
3777 | In a bid to try and stem the confusion inherent in having tahoe_fuse, |
---|
3778 | tfuse and tahoefuse jumbled together (not necessarily helped by |
---|
3779 | referring to them as impl_a, b and c respectively) I'm hereby renaming |
---|
3780 | tahoefuse as 'blackmatch' (black match is, per wikipedia "a type of |
---|
3781 | crude fuse" hey, I'm a punny guy) Maybe one day it'll be promoted to |
---|
3782 | be 'quickmatch' instead... |
---|
3783 | |
---|
3784 | Anyway, this patch moves mac/tahoefuse.py out to contrib/fuse/impl_c/ |
---|
3785 | as blackmatch.py, and makes appropriate changes to the mac build process |
---|
3786 | to transclude blackmatch therein. this leaves the extant fuse.py and |
---|
3787 | fuseparts business in mac/ as-is and doesn't attempt to address such |
---|
3788 | issues in contrib/fuse/impl_c. |
---|
3789 | |
---|
3790 | it is left as an exercise to the reader (or the reader of a message |
---|
3791 | to follow) as to how to deal with the 'fuse' python module on the mac. |
---|
3792 | |
---|
3793 | as of this time, blackmatch should work on both mac and linux, and |
---|
3794 | passes the four extant tests in runtests. (fwiw neither impl_a nor |
---|
3795 | impl_b have I managed to get working on the mac yet) |
---|
3796 | |
---|
3797 | since blackmatch supports a read-write and caching fuse interface to |
---|
3798 | tahoe, some write tests obviously need to be added to runtests. |
---|
3799 | |
---|
3800 | ] |
---|
3801 | [macapp: changes to support aliases, updated tahoefuse command line options |
---|
3802 | robk-tahoe@allmydata.com**20080925010128 |
---|
3803 | |
---|
3804 | the tahoefuse command line options changed to support the runtests harness, |
---|
3805 | and as part of that gained support for named aliases via --alias |
---|
3806 | |
---|
3807 | this changes the mac app's invocation of tahoefuse to match that, and also |
---|
3808 | changes the gui to present the list of defined aliases as valid mounts |
---|
3809 | |
---|
3810 | this replaces the previous logic which examined the ~/.tahoe/private directory |
---|
3811 | looking for files ending in '.cap' - an ad-hoc alias mechanism. |
---|
3812 | |
---|
3813 | if a file is found matching ~/.tahoe/private/ALIASNAME.icns then that will still |
---|
3814 | be passed to tahoefuse as the icon to display for that filesystem. if no such |
---|
3815 | file is found, the allmydata icon will be used by default. |
---|
3816 | |
---|
3817 | the '-olocal' option is passed to tahoefuse. this is potentially contentious. |
---|
3818 | specifically this is telling the OS that this is a 'local' filesystem, which is |
---|
3819 | intended to be used to locally attached devices. however leopard (OSX 10.5) |
---|
3820 | will only display non-local filesystems in the Finder's side bar if they are of |
---|
3821 | fs types specifically known by Finder to be network file systems (nfs, cifs, |
---|
3822 | webdav, afp) hence the -olocal flag is the only way on leopard to cause finder |
---|
3823 | to display the mounted filesystem in the sidebar, but it displays as a 'device'. |
---|
3824 | there is a potential (i.e. the fuse docs carry warnings) that this may cause |
---|
3825 | vague and unspecified undesirable behaviour. |
---|
3826 | (c.f. http://code.google.com/p/macfuse/wiki/FAQ specifically Q4.3 and Q4.1) |
---|
3827 | |
---|
3828 | |
---|
3829 | ] |
---|
3830 | [fuse/impl_c: reworking of mac/tahoefuse, command line options, test integration |
---|
3831 | robk-tahoe@allmydata.com**20080925001535 |
---|
3832 | |
---|
3833 | a handful of changes to the tahoefuse implementation used by the mac build, to |
---|
3834 | make command line option parsing more flexible and robust, and moreover to |
---|
3835 | facilitate integration of this implementation with the 'runtests' test harness |
---|
3836 | used to test the other two implementations. |
---|
3837 | |
---|
3838 | this patch includes; |
---|
3839 | - improvements to command line option parsing [ see below ] |
---|
3840 | - support for 'aliases' akin to other tahoe tools |
---|
3841 | - tweaks to support linux (ubuntu hardy) |
---|
3842 | |
---|
3843 | the linux support tweaks are, or at least seem to be, a result of the fact that |
---|
3844 | hardy ships with fuse 0.2pre3, as opposed to the fuse0.2 that macfuse is based |
---|
3845 | upon. at least the versions I was working with have discrepencies in their |
---|
3846 | interfaces, but on reflection this is probably a 'python-fuse' version issue |
---|
3847 | rather than fuse per se. At any rate, the fixes to handling the Stat objects |
---|
3848 | should be safe against either version, it's just that the bindings on hardy |
---|
3849 | lacked code that was in the 'fuse' python module on the mac... |
---|
3850 | |
---|
3851 | command line options: |
---|
3852 | |
---|
3853 | the need for more flexible invocation in support of the runtests harness led |
---|
3854 | me to rework the argument parsing from some simple positional hacks with a |
---|
3855 | pass-through of the remainder to the fuse binding's 'fuse_main' to a system |
---|
3856 | using twisted.usage to parse arguments, and having just one option '-o' being |
---|
3857 | explicitly a pass-through for -o options to fuse_main. the options are now: |
---|
3858 | |
---|
3859 | --node-directory NODEDIR : this is used to look up the node-url to connect |
---|
3860 | to if that's not specified concretely on the command line, and also used to |
---|
3861 | determine the location of the cache directory used by the implementation, |
---|
3862 | specifically '_cache' within the nodedir. default value: ~/.tahoe |
---|
3863 | |
---|
3864 | --node-url NODEURL : specify a node-url taking precendence over that found |
---|
3865 | in the node.url file within the nodedir |
---|
3866 | |
---|
3867 | --alias ALIAS : specifies the named alias should be mounted. a lookup is |
---|
3868 | performed in the alias table within 'nodedir' to find the root dir cap |
---|
3869 | the named alias must exist in the alias table of the specified nodedir |
---|
3870 | |
---|
3871 | --root-uri ROOTURI : specifies that the given directory uri should be mounted |
---|
3872 | |
---|
3873 | at least one of --alias and --root-uri must be given (which directory to mount |
---|
3874 | must be specified somehow) if both are given --alias takes precedence. |
---|
3875 | |
---|
3876 | --cache-timeout TIMEOUTSECS : specifies the number of seconds that cached |
---|
3877 | directory data should be considered valid for. this tahoefuse implementation |
---|
3878 | implements directory caching for a limited time; largely because the mac (i.e. |
---|
3879 | the Finder in particular) tends to make a large number of requests in quick |
---|
3880 | successsion when browsing the filesystem. on the flip side, the 'runtests' |
---|
3881 | unit tests fail in the face of such caching because the changes made to the |
---|
3882 | underlying tahoe directories are not reflected in the fuse presentation. by |
---|
3883 | specifying a cache-timeout of 0 seconds, runtests can force the fuse layer |
---|
3884 | into refetching directory data upon each request. |
---|
3885 | |
---|
3886 | any number of -oname=value options may be specified on the command line, |
---|
3887 | and they will all be passed into the underlying fuse_main call. |
---|
3888 | |
---|
3889 | a single non-optional argument, the mountpoint, must also be given. |
---|
3890 | |
---|
3891 | |
---|
3892 | |
---|
3893 | ] |
---|
3894 | [fuse/tests: slew of changes to fuse 'runtests' |
---|
3895 | robk-tahoe@allmydata.com**20080924183601 |
---|
3896 | |
---|
3897 | This patch makes a significant number of changes to the fuse 'runtests' script |
---|
3898 | which stem from my efforts to integrate the third fuse implementation into this |
---|
3899 | framework. Perhaps not all were necessary to that end, and I beg nejucomo's |
---|
3900 | forebearance if I got too carried away. |
---|
3901 | |
---|
3902 | - cleaned up the blank lines; imho blank lines should be empty |
---|
3903 | |
---|
3904 | - made the unmount command switch based on platform, since macfuse just uses |
---|
3905 | 'umount' not the 'fusermount' command (which doesn't exist) |
---|
3906 | |
---|
3907 | - made the expected working dir for runtests the contrib/fuse dir, not the |
---|
3908 | top-level tahoe source tree - see also discussion of --path-to-tahoe below |
---|
3909 | |
---|
3910 | - significantly reworked the ImplProcManager class. rather than subclassing |
---|
3911 | for each fuse implementation to be tested, the new version is based on |
---|
3912 | instantiating objects and providing relevant config info to the constructor. |
---|
3913 | this was motivated by a desire to eliminate the duplication of similar but |
---|
3914 | subtly different code between instances, framed by consideration of increasing |
---|
3915 | the number of platforms and implementations involved. each implementation to |
---|
3916 | test is thus reduced to the pertinent import and an entry in the |
---|
3917 | 'implementations' table defining how to handle that implementation. this also |
---|
3918 | provides a way to specify which sets of tests to run for each implementation, |
---|
3919 | more on that below. |
---|
3920 | |
---|
3921 | |
---|
3922 | - significantly reworked the command line options parsing, using twisted.usage; |
---|
3923 | |
---|
3924 | what used to be a single optional argument is now represented by the |
---|
3925 | --test-type option which allows one to choose between running unittests, the |
---|
3926 | system tests, or both. |
---|
3927 | |
---|
3928 | the --implementations option allows for a specific (comma-separated) list of |
---|
3929 | implemenations to be tested, or the default 'all' |
---|
3930 | |
---|
3931 | the --tests option allows for a specific (comma-separated) list of tests sets |
---|
3932 | to be run, or the default 'all'. note that only the intersection of tests |
---|
3933 | requested on the command line and tests relevant to each implementation will |
---|
3934 | be run. see below for more on tests sets. |
---|
3935 | |
---|
3936 | the --path-to-tahoe open allows for the path to the 'tahoe' executable to be |
---|
3937 | specified. it defaults to '../../bin/tahoe' which is the location of the tahoe |
---|
3938 | script in the source tree relative to the contrib/fuse dir by default. |
---|
3939 | |
---|
3940 | the --tmp-dir option controls where temporary directories (and hence |
---|
3941 | mountpoints) are created during the test. this defaults to /tmp - a change |
---|
3942 | from the previous behaviour of using the system default dir for calls to |
---|
3943 | tempfile.mkdtemp(), a behaviour which can be obtained by providing an empty |
---|
3944 | value, e.g. "--tmp-dir=" |
---|
3945 | |
---|
3946 | the --debug-wait flag causes the test runner to pause waiting upon user |
---|
3947 | input at various stages through the testing, which facilitates debugging e.g. |
---|
3948 | by allowing the user to open a browser and explore or modify the contents of |
---|
3949 | the ephemeral grid after it has been instantiated but before tests are run, |
---|
3950 | or make environmental adjustments before actually triggering fuse mounts etc. |
---|
3951 | note that the webapi url for the first client node is printed out upon its |
---|
3952 | startup to facilitate this sort of debugging also. |
---|
3953 | |
---|
3954 | |
---|
3955 | - the default tmp dir was changed, and made configurable. previously the |
---|
3956 | default behaviour of tempfile.mkdtemp() was used. it turns out that, at least |
---|
3957 | on the mac, that led to temporary directories to be created in a location |
---|
3958 | which ultimately led to mountpoint paths longer than could be handled by |
---|
3959 | macfuse - specifically mounted filesystems could not be unmounted and would |
---|
3960 | 'leak'. by changing the default location to be rooted at /tmp this leads to |
---|
3961 | mountpoint paths short enough to be supported without problems. |
---|
3962 | |
---|
3963 | - tests are now grouped into 'sets' by method name prefix. all the existing |
---|
3964 | tests have been moved into the 'read' set, i.e. with method names starting |
---|
3965 | 'test_read_'. this is intended to facilitate the fact that some implementations |
---|
3966 | are read-only, and some support write, so the applicability of tests will vary |
---|
3967 | by implementation. the 'implementations' table, which governs the configuration |
---|
3968 | of the ImplProcManager responsible for a given implementation, provides a list |
---|
3969 | of 'test' (i.e test set names) which are applicable to that implementation. |
---|
3970 | note no 'write' tests yet exist, this is merely laying the groundwork. |
---|
3971 | |
---|
3972 | - the 'expected output' of the tahoe command, which is checked for 'surprising' |
---|
3973 | output by regex match, can be confused by spurious output from libraries. |
---|
3974 | specfically, testing on the mac produced a warning message about zope interface |
---|
3975 | resolution various multiple eggs. the 'check_tahoe_output()' function now has |
---|
3976 | a list of 'ignorable_lines' (each a regex) which will be discarded before the |
---|
3977 | remainder of the output of the tahoe script is matched against expectation. |
---|
3978 | |
---|
3979 | - cleaned up a typo, and a few spurious imports caught by pyflakes |
---|
3980 | |
---|
3981 | ] |
---|
3982 | [fuse/impl_{a,b}: improve node-url handling |
---|
3983 | robk-tahoe@allmydata.com**20080924182854 |
---|
3984 | |
---|
3985 | specifically change the expectation of the code to be such that the node-url |
---|
3986 | (self.url) always includes the trailing slash to be a correctly formed url |
---|
3987 | |
---|
3988 | moreover read the node-url from the 'node.url' file found in the node 'basedir' |
---|
3989 | and only if that doesn't exist, then fall back to reading the 'webport' file |
---|
3990 | from therein and assuming localhost. This then supports the general tahoe |
---|
3991 | pattern that tools needing only a webapi server can be pointed at a directory |
---|
3992 | containing the node.url file, which can optionally point to another server, |
---|
3993 | rather than requiring a complete node dir and locally running node instance. |
---|
3994 | |
---|
3995 | ] |
---|
3996 | [fuse/impl_b: tweaks from testing on hardy |
---|
3997 | robk-tahoe@allmydata.com**20080924180738 |
---|
3998 | |
---|
3999 | from testing on linux (specifically ubuntu hardy) the libfuse dll has a |
---|
4000 | different name, specifically libfuse.so.2. this patch tries libfuse.so |
---|
4001 | and then falls back to trying .2 if the former fails. |
---|
4002 | |
---|
4003 | it also changes the unmount behaviour, to simply return from the handler's |
---|
4004 | loop_forever() loop upon being unmounted, rather than raising an EOFError, |
---|
4005 | since none of the client code I looked at actually handled that exception, |
---|
4006 | but did seem to expect to fall off of main() when loop_forever() returned. |
---|
4007 | Additionally, from my testing unmount typically led to an OSError from the |
---|
4008 | fuse fd read, rather than an empty read, as the code seemed to expect. |
---|
4009 | |
---|
4010 | also removed a spurious import pyflakes quibbled about. |
---|
4011 | ] |
---|
4012 | [setup: fix site-dirs to find system installed twisted on mac. |
---|
4013 | robk-tahoe@allmydata.com**20080924174255 |
---|
4014 | |
---|
4015 | zooko helped me unravel a build weirdness today. somehow the system installed |
---|
4016 | twisted (/System/Library) was pulling in parts of the other twisted (/Library) |
---|
4017 | which had been installed by easy_install, and exploding. |
---|
4018 | |
---|
4019 | getting rid of the latter helped, but it took this change to get the tahoe |
---|
4020 | build to stop trying to rebuild twisted and instead use the one that was |
---|
4021 | already installed. c.f. tkt #229 |
---|
4022 | ] |
---|
4023 | [CLI: rework webopen, and moreover its tests w.r.t. path handling |
---|
4024 | robk-tahoe@allmydata.com**20080924164523 |
---|
4025 | |
---|
4026 | in the recent reconciliation of webopen patches, I wound up adjusting |
---|
4027 | webopen to 'pass through' the state of the trailing slash on the given |
---|
4028 | argument to the resultant url passed to the browser. this change |
---|
4029 | removes the requirement that arguments must be directories, and allows |
---|
4030 | webopen to be used with files. it also broke the tests that assumed |
---|
4031 | that webopen would always normalise the url to have a trailing slash. |
---|
4032 | |
---|
4033 | in fixing the tests, I realised that, IMHO, there's something deeply |
---|
4034 | awry with the way tahoe handles paths; specifically in the combination |
---|
4035 | of '/' being the name of the root path within an alias, but a leading |
---|
4036 | slash on paths, e.g. 'alias:/path', is catagorically incorrect. i.e. |
---|
4037 | 'tahoe:' == 'tahoe:/' == '/' |
---|
4038 | but 'tahoe:/foo' is an invalid path, and must be 'tahoe:foo' |
---|
4039 | |
---|
4040 | I wound up making the internals of webopen simply spot a 'path' of |
---|
4041 | '/' and smash it to '', which 'fixes' webopen to match the behaviour |
---|
4042 | of tahoe's path handling elsewhere, but that special case sort of |
---|
4043 | points to the weirdness. |
---|
4044 | |
---|
4045 | (fwiw, I personally found the fact that the leading / in a path was |
---|
4046 | disallowed to be weird - I'm just used to seeing paths qualified by |
---|
4047 | the leading / I guess - so in a debate about normalising path handling |
---|
4048 | I'd vote to include the /) |
---|
4049 | |
---|
4050 | ] |
---|
4051 | [CLI: reconcile webopen changes |
---|
4052 | robk-tahoe@allmydata.com**20080924152002 |
---|
4053 | |
---|
4054 | I think this is largely attributable to a cleanup patch I'd made |
---|
4055 | which never got committed upstream somehow, but at any rate various |
---|
4056 | conflicting changes to webopen had been made. This cleans up the |
---|
4057 | conflicts therein, and hopefully brings 'tahoe webopen' in line with |
---|
4058 | other cli commands. |
---|
4059 | ] |
---|
4060 | [cli: cleanup webopen command |
---|
4061 | robk-tahoe@allmydata.com**20080618201940 |
---|
4062 | |
---|
4063 | moved the body of webopen out of cli.py into tahoe_webopen.py |
---|
4064 | |
---|
4065 | made its invocation consistent with the other cli commands, most |
---|
4066 | notably replacing its 'vdrive path' with the same alias parsing, |
---|
4067 | allowing usage such as 'tahoe webopen private:Pictures/xti' |
---|
4068 | ] |
---|
4069 | [macapp: changed to remove 'Tahoe' from .app name |
---|
4070 | robk-tahoe@allmydata.com**20080611003145 |
---|
4071 | |
---|
4072 | Change the build product from 'Allmydata Tahoe' to 'Allmydata' |
---|
4073 | more inkeeping with the branding of the Allmydata product |
---|
4074 | ] |
---|
4075 | [add --syslog argument to 'tahoe start' and 'tahoe restart', used to pass --syslog to twistd for non-Tahoe nodes (like cpu-watcher) |
---|
4076 | warner@allmydata.com**20080925010302] |
---|
4077 | [misc/make-canary-files.py: tool to create 'canary files', explained in the docstring |
---|
4078 | warner@allmydata.com**20080925004716] |
---|
4079 | [webapi: survive slashes in filenames better: make t=info and t=delete to work, and let t=rename fix the problem |
---|
4080 | warner@allmydata.com**20080924203505] |
---|
4081 | [setup: when detecting platform, ask the Python Standard Library's platform.dist() before executing lsb_release, and cache the result in global (module) variables |
---|
4082 | zooko@zooko.com**20080924180922 |
---|
4083 | This should make it sufficiently fast, while still giving a better answer on Ubuntu than platform.dist() currently does, and also falling back to lsb_release if platform.dist() says that it doesn't know. |
---|
4084 | ] |
---|
4085 | [node.py: add BASEDIR/keepalive_timeout and BASEDIR/disconnect_timeout, to set/enable the foolscap timers, for #521 |
---|
4086 | warner@allmydata.com**20080924175112] |
---|
4087 | [setup: stop catching EnvironmentError when attempting to copy ./_auto_deps.py to ./src/allmydata/_auto_deps.py |
---|
4088 | zooko@zooko.com**20080924000402 |
---|
4089 | It is no longer the case that we can run okay without _auto_deps.py being in place in ./src/allmydata, so if that cp fails then the build should fail. |
---|
4090 | ] |
---|
4091 | [immutable: remove unused imports (thanks, pyflakes) |
---|
4092 | zooko@zooko.com**20080923192610] |
---|
4093 | [immutable: refactor immutable filenodes and comparison thereof |
---|
4094 | zooko@zooko.com**20080923185249 |
---|
4095 | * the two kinds of immutable filenode now have a common base class |
---|
4096 | * they store only an instance of their URI, not both an instance and a string |
---|
4097 | * they delegate comparison to that instance |
---|
4098 | ] |
---|
4099 | [setup: try parsing /etc/lsb-release first, then invoking lsb_release, because the latter takes half-a-second on my workstation, which is too long |
---|
4100 | zooko@zooko.com**20080923171431 |
---|
4101 | Also because in some cases the former will work and the latter won't. |
---|
4102 | This patch also tightens the regexes so it won't match random junk. |
---|
4103 | ] |
---|
4104 | [setup: fix a cut-and-paste error in the fallback to parsing /etc/lsb-release |
---|
4105 | zooko@zooko.com**20080923165551] |
---|
4106 | [setup: if executing lsb_release doesn't work, fall back to parsing /etc/lsb-release before falling back to platform.dist() |
---|
4107 | zooko@zooko.com**20080923162858 |
---|
4108 | An explanatio of why we do it this way is in the docstring. |
---|
4109 | ] |
---|
4110 | [setup: if invoking lsb_release doesn't work (which it doesn't on our etch buildslave), then fall back to the Python Standard Library's platform.dist() function |
---|
4111 | zooko@zooko.com**20080923154820] |
---|
4112 | [setup: fix bug in recent patch to use allmydata.get_package_versions() to tell the foolscap app-version-tracking what's what |
---|
4113 | zooko@zooko.com**20080923001347] |
---|
4114 | [setup: when using the foolscap "what versions are here?" feature, use allmydata.get_package_versions() instead of specifically importing allmydata, pycryptopp, and zfec |
---|
4115 | zooko@zooko.com**20080923000351] |
---|
4116 | [setup: simplify the implementation of allmydata.get_package_versions() and add "platform" which is a human-oriented summary of the underlying operating system and machine |
---|
4117 | zooko@zooko.com**20080922235354] |
---|
4118 | [misc/make_umid: change docs, make elisp code easier to grab |
---|
4119 | warner@lothar.com**20080920183933] |
---|
4120 | [use foolscap's new app_versions API, require foolscap-0.3.1 |
---|
4121 | warner@lothar.com**20080920183853] |
---|
4122 | [BASEDIR/nickname is now UTF-8 encoded |
---|
4123 | warner@lothar.com**20080920183713] |
---|
4124 | [various: use util.log.err instead of twisted.log.err, so we get both Incidents and trial-test-flunking |
---|
4125 | warner@lothar.com**20080920173545] |
---|
4126 | [logging.txt: explain how to put log.err at the end of Deferred chains, explain FLOGTOTWISTED=1 |
---|
4127 | warner@lothar.com**20080920173500] |
---|
4128 | [util.log: send log.err to Twisted too, so that Trial tests are flunked |
---|
4129 | warner@lothar.com**20080920173427] |
---|
4130 | [setup.py trial: improve --verbose suggestion a bit |
---|
4131 | warner@lothar.com**20080919193922] |
---|
4132 | [test_cli: disable generate-keypair test on OS-X, pycryptopp still has a bug |
---|
4133 | warner@lothar.com**20080919193855] |
---|
4134 | [NEWS: finish editing for the upcoming 1.3.0 release |
---|
4135 | warner@lothar.com**20080919193053] |
---|
4136 | [NEWS: more edits, almost done |
---|
4137 | warner@lothar.com**20080919010036] |
---|
4138 | [NEWS: describe all changes since the last release. Still needs editing. |
---|
4139 | warner@lothar.com**20080919002755] |
---|
4140 | [CLI: add 'tahoe admin generate-keypair' command |
---|
4141 | warner@lothar.com**20080919001133] |
---|
4142 | [web: add 'more info' pages for files and directories, move URI/checker-buttons/deep-size/etc off to them |
---|
4143 | warner@lothar.com**20080918050041] |
---|
4144 | [setup.py: remove unused 'Extension' import |
---|
4145 | warner@lothar.com**20080917230829] |
---|
4146 | [setup.py,Makefile: move the 'chmod +x bin/tahoe' into setup.py |
---|
4147 | warner@lothar.com**20080917230756] |
---|
4148 | [docs/install.html: reference InstallDetails instead of debian-specific stuff |
---|
4149 | warner@lothar.com**20080917225742] |
---|
4150 | [Makefile,docs: tahoe-deps.tar.gz now lives in separate source/deps/ directory on http://allmydata.org |
---|
4151 | warner@lothar.com**20080917204452] |
---|
4152 | [docs: mention -SUMO tarballs, point users at release tarballs instead of development ones |
---|
4153 | warner@lothar.com**20080917203631] |
---|
4154 | [setup.py,Makefile: teat sdist --sumo about tahoe-deps/, use -SUMO suffix on tarballs, add sumo to 'make tarballs' target |
---|
4155 | warner@lothar.com**20080917200119] |
---|
4156 | [.darcs-boringfile ignore tahoe-deps and tahoe-deps.tar.gz |
---|
4157 | warner@lothar.com**20080917195938] |
---|
4158 | [docs: add a note about the process of making a new Tahoe release |
---|
4159 | zooko@zooko.com**20080917170839] |
---|
4160 | [Makefile: pyutil from a dependent lib causes a #455-ish problem, the workaround is to run build-once *three* times |
---|
4161 | warner@lothar.com**20080917053643] |
---|
4162 | [Makefile: desert-island: don't re-fetch tahoe-deps.tar.gz if it's already there, remove the tahoe-deps/ before untarring directory to avoid unpacking weirdness |
---|
4163 | warner@lothar.com**20080917052204] |
---|
4164 | [misc/check-build.py: ignore the 'Downloading file:..' line that occurs for the setup_requires= -triggered handling of the setuptools egg |
---|
4165 | warner@lothar.com**20080917051725] |
---|
4166 | [#249: add 'test-desert-island', to assert that a tahoe-deps.tar.gz -enabled build does not download anything |
---|
4167 | warner@lothar.com**20080917013702] |
---|
4168 | [#249: get dependent libs from tahoe-deps and ../tahoe-deps |
---|
4169 | warner@lothar.com**20080917013627] |
---|
4170 | [#249: move dependent libs out of misc/dependencies/, get them from tahoe-deps.tar.gz instead |
---|
4171 | warner@allmydata.com**20080917012545] |
---|
4172 | [conf_wiz.py - updating version numbers in file, should really get these from a TAG or conf file |
---|
4173 | secorp@allmydata.com**20080917004547] |
---|
4174 | [webish: add an extra newline to JSON output |
---|
4175 | warner@lothar.com**20080915204314] |
---|
4176 | [windows/Makefile: fix dependencies: windows-installer must cause windows-exe to run |
---|
4177 | warner@allmydata.com**20080912052151] |
---|
4178 | [Makefile: fix windows issues |
---|
4179 | warner@allmydata.com**20080912050919] |
---|
4180 | [Makefile: use run_with_pythonpath, move windows targets into a separate Makefile |
---|
4181 | warner@allmydata.com**20080912044508] |
---|
4182 | [setup.py: add 'setup.py run_with_pythonpath', to run other commands with PYTHONPATH set usefully |
---|
4183 | warner@allmydata.com**20080912044418] |
---|
4184 | [Makefile: convert check-auto-deps target into 'setup.py check_auto_deps' |
---|
4185 | warner@allmydata.com**20080912035904] |
---|
4186 | [startstop_node.py: find twistd in our supportlib if we had to build Twisted as a setuptools dependency. This is a form of cgalvan's #505 patch, simplified because now 'setup.py trial' takes care of sys.path and PYTHONPATH |
---|
4187 | warner@allmydata.com**20080912025138] |
---|
4188 | [rewrite parts of the Makefile in setup.py. Add 'build_tahoe' and 'trial' subcommands. |
---|
4189 | warner@allmydata.com**20080912010321 |
---|
4190 | |
---|
4191 | The 'make build' target now runs 'setup.py build_tahoe', which figures out |
---|
4192 | where the target 'supportlib' directory should go, and invokes 'setup.py |
---|
4193 | develop' with the appropriate arguments. |
---|
4194 | |
---|
4195 | The 'make test' target now runs 'setup.py trial', which manages sys.path and |
---|
4196 | runs trial as a subroutine instead of spawning an external process. This |
---|
4197 | simplifies the case where Twisted was built as a dependent library (and thus |
---|
4198 | the 'trial' executable is not on PATH). |
---|
4199 | |
---|
4200 | setup.py now manages sys.path and PYTHONPATH for its internal subcommands, so |
---|
4201 | the $(PP) prefix was removed from all Makefile targets that invoke setup.py . |
---|
4202 | For the remaining ones, the 'setup.py -q show_pythonpath' subcommand was |
---|
4203 | added to compute this prefix with python rather than with fragile |
---|
4204 | shell/Makefile syntax. |
---|
4205 | |
---|
4206 | |
---|
4207 | ] |
---|
4208 | [bin/tahoe: reflow error messages |
---|
4209 | warner@allmydata.com**20080912010225] |
---|
4210 | [mac/Makefile: remove the verbose hdiutil diagnostics now that we resolved the problem |
---|
4211 | warner@allmydata.com**20080912004622] |
---|
4212 | [Makefile: give setup.py develop a '--site-dirs' arg to work around the #249 setuptools bug which causes us to unnecessarily rebuild pyopenssl and other support libs installed via debian's python-support. Should be harmless on other platforms. |
---|
4213 | warner@allmydata.com**20080910233432] |
---|
4214 | [web: fix output=JSON, add buttons for repair/json to the 'run deep-check' form |
---|
4215 | warner@allmydata.com**20080910211137] |
---|
4216 | [disallow deep-check on non-directories, simplifies the code a bit |
---|
4217 | warner@allmydata.com**20080910204458] |
---|
4218 | [dirnode: refactor recursive-traversal methods, add stats to deep_check() method results and t=deep-check webapi |
---|
4219 | warner@lothar.com**20080910084504] |
---|
4220 | [dirnode: cleanup, make get_verifier() always return a URI instance, not a string |
---|
4221 | warner@lothar.com**20080910083755] |
---|
4222 | [test_system: check t=deep-stats too |
---|
4223 | warner@lothar.com**20080910065457] |
---|
4224 | [test_system: add deep-check-JSON tests, fix a bug |
---|
4225 | warner@lothar.com**20080910061416] |
---|
4226 | [test_system: oops, re-enable some tests that got bypassed |
---|
4227 | warner@lothar.com**20080910060245] |
---|
4228 | [test_system: add deep-stats test |
---|
4229 | warner@lothar.com**20080910055634] |
---|
4230 | [hush pyflakes |
---|
4231 | warner@allmydata.com**20080910025017] |
---|
4232 | [checker results: add output=JSON to webapi, add tests, clean up APIs |
---|
4233 | warner@allmydata.com**20080910024517 |
---|
4234 | to make the internal ones use binary strings (nodeid, storage index) and |
---|
4235 | the web/JSON ones use base32-encoded strings. The immutable verifier is |
---|
4236 | still incomplete (it returns imaginary healty results). |
---|
4237 | ] |
---|
4238 | [immutable verifier: provide some dummy results so deep-check works, make the tests ignore these results until we finish it off |
---|
4239 | warner@allmydata.com**20080910010827] |
---|
4240 | [mutable checker: even more tests. Everything in ICheckerResults should be covered now, except for immutable-verify which is incomplete |
---|
4241 | warner@allmydata.com**20080910005706] |
---|
4242 | [checker results: more tests, update interface docs |
---|
4243 | warner@allmydata.com**20080910003010] |
---|
4244 | [mutable checker: oops, fix redefinition of 'healthy' (numshares < N, not numshares < k, which is 'recoverable' not 'healthy') |
---|
4245 | warner@allmydata.com**20080910002853] |
---|
4246 | [checker results: more tests, more results. immutable verifier tests are disabled until they emit more complete results |
---|
4247 | warner@allmydata.com**20080910001546] |
---|
4248 | [checker: add tests, add stub for immutable check_and_repair |
---|
4249 | warner@allmydata.com**20080909233449] |
---|
4250 | [interfaces.py: minor improvement to IDirectoryNode.set_node |
---|
4251 | warner@allmydata.com**20080909233416] |
---|
4252 | [mac/Makefile: upload the .dmg file with foolscap xfer-client.py instead of scp |
---|
4253 | warner@allmydata.com**20080908231943] |
---|
4254 | [misc/xfer-client.py: small foolscap utility to transfer a file to a waiting server |
---|
4255 | warner@allmydata.com**20080908231903] |
---|
4256 | [setup: add excited DEVELOPER NOTE to install.html |
---|
4257 | zooko@zooko.com**20080908215603 |
---|
4258 | It should be removed before 1.3.0 release, of course... |
---|
4259 | ] |
---|
4260 | [setup: edit the text of install.html |
---|
4261 | zooko@zooko.com**20080908215549] |
---|
4262 | [setup: add link to the DownloadDebianPackages page |
---|
4263 | zooko@zooko.com**20080908215451 |
---|
4264 | Because I want that link off of the front page of the wiki... |
---|
4265 | ] |
---|
4266 | [setup: change URL from which to get source tarballs |
---|
4267 | zooko@zooko.com**20080908215409 |
---|
4268 | So that when you look at that directory you won't see distracting other things such as darcs repositories. |
---|
4269 | ] |
---|
4270 | [test_system: make log() tolerate the format= form |
---|
4271 | warner@lothar.com**20080908030336] |
---|
4272 | [immutable/checker: make log() tolerate the format= form |
---|
4273 | warner@lothar.com**20080908030308] |
---|
4274 | [checker: overhaul checker results, split check/check_and_repair into separate methods, improve web displays |
---|
4275 | warner@allmydata.com**20080907194456] |
---|
4276 | [webapi.txt: explain that t=manifest gives verifycaps |
---|
4277 | warner@allmydata.com**20080907192950] |
---|
4278 | [introducer: add get_nickname_for_peerid |
---|
4279 | warner@allmydata.com**20080906050700] |
---|
4280 | [docs/logging.txt: explain tahoe/foolscap logging. Addresses #239. |
---|
4281 | warner@allmydata.com**20080904002531] |
---|
4282 | [setup: don't assert that trial is present when the Makefile is evaluated |
---|
4283 | zooko@zooko.com**20080903171837 |
---|
4284 | This should fix #506, but it means that if (for some weird reason) Twisted can't be auto-installed and the find_trial.py script doesn't work, the user will get a weird failure message instead of a clean failure message explaining that trial couldn't be found. Oh well. |
---|
4285 | |
---|
4286 | Chris Galvan is working on a much nicer fix to all these issues -- see #505. |
---|
4287 | |
---|
4288 | ] |
---|
4289 | [testutil.PollMixin: use a custom exception (and convert it) to avoid the ugly 'stash' cycle |
---|
4290 | warner@allmydata.com**20080903033251] |
---|
4291 | [mac/Makefile: more attempts to debug the buildslave failure |
---|
4292 | warner@allmydata.com**20080829220614] |
---|
4293 | [mac: add -verbose to the hdiutil call, to figure out why it's failing on the buildslave |
---|
4294 | warner@allmydata.com**20080829205243] |
---|
4295 | [setup: simplify parsing of python version number |
---|
4296 | zooko@zooko.com**20080829000045] |
---|
4297 | [setup: emit the version of python in the list of versions |
---|
4298 | zooko@zooko.com**20080828220454] |
---|
4299 | [munin: add tahoe_diskleft plugin, update spacetime/diskwatcher.tac to support it |
---|
4300 | warner@allmydata.com**20080828203236] |
---|
4301 | [docs: how_to_make_a_tahoe_release.txt |
---|
4302 | zooko@zooko.com**20080828202109 |
---|
4303 | Just some cryptic notes to self, but if I get hit by a truck then someone else might be able to decode them. |
---|
4304 | ] |
---|
4305 | [debian: include misc/cpu-watcher.tac in the debian package |
---|
4306 | warner@allmydata.com**20080827223026] |
---|
4307 | [munin/tahoe_doomsday: change the graph title, 'time predictor' is more accurate than 'space predictor' |
---|
4308 | warner@allmydata.com**20080827213013] |
---|
4309 | [munin/tahoe_diskusage: clip the graph at zero, to prevent transient negative excursions (such as when a lot of old logfiles are deleted from a storage server's disk) from scaling the graph into unusability |
---|
4310 | warner@allmydata.com**20080827193543] |
---|
4311 | [CREDITS: thanks to Chris Galvan |
---|
4312 | zooko@zooko.com**20080827183950] |
---|
4313 | [setup: patch from Chris Galvan to build sdists with no deps in them normally, but include deps if --sumo |
---|
4314 | zooko@zooko.com**20080827182644] |
---|
4315 | [servermap: don't log late arrivals, and don't log DeadReferenceError at log.WEIRD |
---|
4316 | warner@allmydata.com**20080827003729] |
---|
4317 | [mutable: make mutable-repair work for non-verifier runs, add tests |
---|
4318 | warner@allmydata.com**20080826233454] |
---|
4319 | [mutable: remove work-around for a flaw in an older version of foolscap |
---|
4320 | zooko@zooko.com**20080826155055 |
---|
4321 | We now require "foolscap[secure_connections] >= 0.3.0", per [source:_auto_deps.py]. |
---|
4322 | ] |
---|
4323 | [docs: edit install.html a tad |
---|
4324 | zooko@zooko.com**20080826154929] |
---|
4325 | [misc/make_umid: little script and elisp fragment to insert umid= arguments |
---|
4326 | warner@allmydata.com**20080826015918] |
---|
4327 | [logging: add 'unique-message-ids' (or 'umids') to each WEIRD-or-higher log.msg call, to make it easier to correlate log message with source code |
---|
4328 | warner@allmydata.com**20080826015759] |
---|
4329 | [logging cleanups: lower DeadReferenceError from WEIRD (which provokes Incidents) to merely UNUSUAL, don't pre-format Failures in others |
---|
4330 | warner@allmydata.com**20080826005155] |
---|
4331 | [checker: make the log() function of SimpleCHKFileVerifier compatible with the log() function of its superclasses and subclasses |
---|
4332 | zooko@zooko.com**20080825214407] |
---|
4333 | [docs: warn that the "garbage-collection and accounting" section of architecture.txt is out of date, and clarify that "deleted" therein means ciphertext getting garbage-collected |
---|
4334 | zooko@zooko.com**20080822154605] |
---|
4335 | [docs/filesystem-notes.txt: add notes about enabling the 'directory index' feature on ext3 filesystems for storage server lookup speed |
---|
4336 | warner@allmydata.com**20080821205901] |
---|
4337 | [setup: doc string describing what the require_auto_deps() function is for |
---|
4338 | zooko@zooko.com**20080815172234] |
---|
4339 | [mutable/checker: log a WEIRD-level event when we see a hash failure, to trigger an Incident |
---|
4340 | warner@allmydata.com**20080813035020] |
---|
4341 | [immutable checker: add a status_report field |
---|
4342 | warner@allmydata.com**20080813033530] |
---|
4343 | [mutable/servermap: lower the priority of many log messages |
---|
4344 | warner@allmydata.com**20080813033506] |
---|
4345 | [web/deep-check: show the webapi runtime at the bottom of the page |
---|
4346 | warner@allmydata.com**20080813033426] |
---|
4347 | [CLI: tolerate blank lines in the aliases file |
---|
4348 | warner@allmydata.com**20080813025050] |
---|
4349 | [test_web: workaround broken HEAD behavior in twisted-2.5.0 and earlier |
---|
4350 | warner@allmydata.com**20080813024520] |
---|
4351 | [test_web: oops, actually use HEAD (instead of GET) in the HEAD test |
---|
4352 | warner@allmydata.com**20080813020451] |
---|
4353 | [web: use get_size_of_best_version for HEAD requests, provide correct content-type |
---|
4354 | warner@allmydata.com**20080813020410] |
---|
4355 | [mutable: add get_size_of_best_version to the interface, to simplify the web HEAD code, and tests |
---|
4356 | warner@allmydata.com**20080813020252] |
---|
4357 | [CLI: add 'tahoe debug corrupt-share', and use it for deep-verify tests, and fix non-deep web checker API to pass verify=true into node |
---|
4358 | warner@allmydata.com**20080813000501] |
---|
4359 | [IFilesystemNode: add get_storage_index(), it makes tests easier |
---|
4360 | warner@allmydata.com**20080812231407] |
---|
4361 | [test_system: rename Checker to ImmutableChecker, to make room for a mutable one |
---|
4362 | warner@allmydata.com**20080812225932] |
---|
4363 | ['tahoe debug dump-share': add --offsets, to show section offsets |
---|
4364 | warner@allmydata.com**20080812214656] |
---|
4365 | [test_cli: oops, fix tests after recent stdout/stderr cleanup |
---|
4366 | warner@allmydata.com**20080812214634] |
---|
4367 | [scripts/debug: split out dump_immutable_share |
---|
4368 | warner@allmydata.com**20080812205517] |
---|
4369 | [scripts/debug: clean up use of stdout/stderr |
---|
4370 | warner@allmydata.com**20080812205242] |
---|
4371 | [CLI: move the 'repl' command to 'tahoe debug repl' |
---|
4372 | warner@allmydata.com**20080812204017] |
---|
4373 | [CLI: move all debug commands (dump-share, dump-cap, find-shares, catalog-shares) into a 'debug' subcommand, and improve --help output |
---|
4374 | warner@allmydata.com**20080812203732] |
---|
4375 | [hush a pyflakes warning |
---|
4376 | warner@allmydata.com**20080812042423] |
---|
4377 | [web/directory: enable verify=true in t=deep-check |
---|
4378 | warner@allmydata.com**20080812042409] |
---|
4379 | [dirnode: add some deep-check logging |
---|
4380 | warner@allmydata.com**20080812042338] |
---|
4381 | [checker_results.problems: don't str the whole Failure, just extract the reason string |
---|
4382 | warner@allmydata.com**20080812042306] |
---|
4383 | [checker: add information to results, add some deep-check tests, fix a bug in which unhealthy files were not counted |
---|
4384 | warner@allmydata.com**20080812040326] |
---|
4385 | [mutable/checker: rearrange a bit, change checker-results to have a status_report string |
---|
4386 | warner@allmydata.com**20080812032033] |
---|
4387 | [mutable/servermap: add summarize_version |
---|
4388 | warner@allmydata.com**20080812031930] |
---|
4389 | [CLI: make 'tahoe webopen' command accept aliases like 'tahoe ls' |
---|
4390 | warner@allmydata.com**20080812012023] |
---|
4391 | [munin diskusage/doomsday: oops, fix labels, everything was reported in the 1hr column |
---|
4392 | warner@allmydata.com**20080811203431] |
---|
4393 | [munin/tahoe_overhead: don't emit non-sensicial numbers |
---|
4394 | warner@lothar.com**20080807214008] |
---|
4395 | [munin: add tahoe_overhead plugin, to measure effectiveness of GC and deleting data from inactive accounts |
---|
4396 | warner@lothar.com**20080807203925] |
---|
4397 | [diskwatcher.tac: include total-bytes-used |
---|
4398 | warner@lothar.com**20080807201214] |
---|
4399 | [setup: remove accidentally duplicated lines from Makefile |
---|
4400 | zooko@zooko.com**20080807193029] |
---|
4401 | [misc/dependencies: remove the no-longer-useful foolscap-0.2.5 tarball |
---|
4402 | warner@lothar.com**20080807184546] |
---|
4403 | [Makefile: avoid bare quotes, since the emacs syntax-highlighter gets confused by them |
---|
4404 | warner@lothar.com**20080807183001] |
---|
4405 | [diskwatcher.tac: don't report negative timeleft |
---|
4406 | warner@lothar.com**20080807173433] |
---|
4407 | [diskwatcher.tac: reduce the polling rate to once per hour |
---|
4408 | warner@lothar.com**20080807062021] |
---|
4409 | [misc/spacetime: add munin plugins, add everything to .deb |
---|
4410 | warner@lothar.com**20080807060003] |
---|
4411 | [diskwatcher.tac: hush pyflakes |
---|
4412 | warner@lothar.com**20080807050427] |
---|
4413 | [diskwatcher.tac: add async-GET code, but leave it commented out: urlopen() seems to work better for now |
---|
4414 | warner@lothar.com**20080807050327] |
---|
4415 | [cpu-watcher.tac: improve error message |
---|
4416 | warner@lothar.com**20080807043801] |
---|
4417 | [disk-watcher: first draft of a daemon to use the HTTP stats interface and its new storage_server.disk_avail feature, to track changes in disk space over time |
---|
4418 | warner@lothar.com**20080807042222] |
---|
4419 | [misc/cpu-watcher.tac: tolerate missing pidfiles, just skip over that sample |
---|
4420 | warner@lothar.com**20080807041705] |
---|
4421 | [setup: don't attempt to escape quote marks, just delete them. Ugly, but it works okay. |
---|
4422 | zooko@zooko.com**20080806232742] |
---|
4423 | [setup: escape any double-quote chars in the PATH before using the PATH to find and invoke trial |
---|
4424 | zooko@zooko.com**20080806231143] |
---|
4425 | [storage: include disk-free information in the stats-gatherer output |
---|
4426 | warner@lothar.com**20080806210602] |
---|
4427 | [mutable: more repair tests, one with force=True to check out merging |
---|
4428 | warner@lothar.com**20080806190607] |
---|
4429 | [test/common: add ShouldFailMixin |
---|
4430 | warner@lothar.com**20080806190552] |
---|
4431 | [test_mutable: add comment about minimal-bandwidth repairer, comma lack of |
---|
4432 | warner@lothar.com**20080806173850] |
---|
4433 | [test_mutable: factor out common setup code |
---|
4434 | warner@lothar.com**20080806173804] |
---|
4435 | [mutable: start adding Repair tests, fix a simple bug |
---|
4436 | warner@lothar.com**20080806061239] |
---|
4437 | [mutable.txt: add warning about out-of-date section |
---|
4438 | warner@lothar.com**20080806061219] |
---|
4439 | [test_system: factor out find_shares/replace_shares to a common class, so they can be used by other tests |
---|
4440 | warner@lothar.com**20080806014958] |
---|
4441 | [debian/control: update dependencies to match _auto_deps: foolscap-0.3.0, pycryptopp-0.5 |
---|
4442 | warner@lothar.com**20080806013222] |
---|
4443 | [bump foolscap dependency to 0.3.0, for the new incident-gathering interfaces |
---|
4444 | warner@lothar.com**20080805235828] |
---|
4445 | [web: add 'report incident' button at the bottom of the welcome page |
---|
4446 | warner@lothar.com**20080805190921] |
---|
4447 | [test_cli: more coverage for 'tahoe put' modifying a mutable file in-place, by filename, closes #441 |
---|
4448 | warner@lothar.com**20080804202643] |
---|
4449 | [check_grid.py: update to match new CLI: 'put - TARGET' instead of 'put TARGET' |
---|
4450 | warner@lothar.com**20080802024856] |
---|
4451 | [test_cli: remove windows-worrying newlines from test data |
---|
4452 | warner@lothar.com**20080802024734] |
---|
4453 | [test_cli.py: factor out CLITestMixin |
---|
4454 | warner@lothar.com**20080802022938] |
---|
4455 | [CLI: change one-arg forms of 'tahoe put' to make an unlinked file, fix replace-mutable #441 |
---|
4456 | warner@lothar.com**20080802022729] |
---|
4457 | [CLI: add create-alias command, to merge mkdir and add-alias into a single (secure-from-argv-snooping) step |
---|
4458 | warner@lothar.com**20080802021041] |
---|
4459 | [test_cli: add system-based tests for PUT, including a mutable put that fails/todo (#441) |
---|
4460 | warner@lothar.com**20080801221009] |
---|
4461 | [tests: simplify CLI tests that use stdin, now that runner supports it |
---|
4462 | warner@lothar.com**20080801220514] |
---|
4463 | [CLI: simplify argument-passing, use options= for everthing, including stdout |
---|
4464 | warner@lothar.com**20080801184624] |
---|
4465 | [tests: add test that verifier notices any (randomly chosen) bit flipped in the verifiable part of any (randomly chosen) share |
---|
4466 | zooko@zooko.com**20080731002015 |
---|
4467 | The currently verifier doesn't (usually) pass this randomized test, hence the TODO. |
---|
4468 | ] |
---|
4469 | [tests: test that checker doesn't cause reads on the storage servers |
---|
4470 | zooko@zooko.com**20080730235420 |
---|
4471 | It would still pass the test if it noticed a corrupted share. (It won't |
---|
4472 | notice, of course.) But it is required to do its work without causing storage |
---|
4473 | servers to read blocks from the filesystem. |
---|
4474 | |
---|
4475 | ] |
---|
4476 | [storage: make storage servers declare oldest supported version == 1.0, and storage clients declare oldest supported version == 1.0 |
---|
4477 | zooko@zooko.com**20080730225107 |
---|
4478 | See comments in patch for intended semantics. |
---|
4479 | ] |
---|
4480 | [tests: use the handy dandy TestCase.mktemp() function from trial to give unique and nicely named directories for each testcase |
---|
4481 | zooko@zooko.com**20080730224920] |
---|
4482 | [tests: don't use SignalMixin |
---|
4483 | zooko@zooko.com**20080730223536 |
---|
4484 | It seems like we no longer need it, and it screws up something internal in |
---|
4485 | trial which causes trial's TestCase.mktemp() method to exhibit wrong behavior |
---|
4486 | (always using a certain test method name instead of using the current test |
---|
4487 | method name), and I wish to use TestCase.mktemp(). |
---|
4488 | |
---|
4489 | Of course, it is possible that the buildbot is about to tell me that we do |
---|
4490 | still require SignalMixin on some of our platforms... |
---|
4491 | |
---|
4492 | ] |
---|
4493 | [setup: if the user passes a TRIALOPT env var then pass that on to trial |
---|
4494 | zooko@zooko.com**20080730205806 |
---|
4495 | This is useful for --reporter=bwverbose, for example. |
---|
4496 | ] |
---|
4497 | [setup: turn back on reactor=poll for cygwin trial (else it runs out of fds) |
---|
4498 | zooko@zooko.com**20080730181217] |
---|
4499 | [setup: fix bug in Makefile -- ifeq, not ifneq -- so that now it sets poll reactor only if the user hasn't specified a REACTOR variable, instead of setting poll reactor only if the user has specified a REACTOR variable |
---|
4500 | zooko@zooko.com**20080730160429] |
---|
4501 | [setup: whoops, really remove the default reactor=poll this time |
---|
4502 | zooko@zooko.com**20080730032358] |
---|
4503 | [setup: instead of setting --reactor=poll for trial in all cases (which fails on platforms that don't have poll reactor, such as Windows and some Mac OS X), just set --reactor=poll for linux2. |
---|
4504 | zooko@zooko.com**20080730031656 |
---|
4505 | |
---|
4506 | ] |
---|
4507 | [setup: pass --reactor=poll to trial unless REACTOR variable is set, in which case pass --reactor=$(REACTOR) |
---|
4508 | zooko@zooko.com**20080730023906 |
---|
4509 | This hopefully works around the problem that Twisted v8.1.0 has a bug when used |
---|
4510 | with pyOpenSSL v0.7 which bug causes some unit tests to spuriously fail -- see |
---|
4511 | known_issues.txt r2788: |
---|
4512 | |
---|
4513 | http://allmydata.org/trac/tahoe/browser/docs/known_issues.txt?rev=2788#L122 |
---|
4514 | |
---|
4515 | Also it matches with the fact that --reactor=poll is required on cygwin. |
---|
4516 | |
---|
4517 | ] |
---|
4518 | [setup: require secure_connections from foolscap |
---|
4519 | zooko@zooko.com**20080730021041 |
---|
4520 | This causes a problem on debian sid, since the pyOpenSSL v0.6 .deb doesn't come |
---|
4521 | with .egg-info, so setuptools will not know that it is already installed and |
---|
4522 | will try to install pyOpenSSL, and if it installs pyOpenSSL v0.7, then this |
---|
4523 | will trigger the bug in Twisted v8.1.0 when used with pyOpenSSL v0.7. |
---|
4524 | |
---|
4525 | http://twistedmatrix.com/trac/ticket/3218 |
---|
4526 | |
---|
4527 | Now the comments in twisted #3218 suggest that it happens only with the select |
---|
4528 | reactor, so maybe using --reactor=poll will avoid it. |
---|
4529 | |
---|
4530 | ] |
---|
4531 | [tests: add test_system.Checker which tests basic checking (without verification) functionality |
---|
4532 | zooko@zooko.com**20080728234317] |
---|
4533 | [test: add testutil.flip_one_bit which flips a randomly chosen bit of the input string |
---|
4534 | zooko@zooko.com**20080728234217] |
---|
4535 | [tests: make it so that you can use common.py's SystemTestMixin.set_up_nodes() more than once with the same introducer |
---|
4536 | zooko@zooko.com**20080728234029] |
---|
4537 | [download.py: set up self._paused before registering the producer, since they might call pauseProducing right away |
---|
4538 | warner@lothar.com**20080728215731] |
---|
4539 | [test/common.py: use pre-computed Tub certificates for the system-test mixin, to speed such tests up by maybe 15%. The goal is to encourage more full-grid tests. |
---|
4540 | warner@allmydata.com**20080728194421] |
---|
4541 | [munin/tahoe_spacetime: show 2wk data even if 4wk data is unavailable |
---|
4542 | warner@allmydata.com**20080728194233] |
---|
4543 | [web: add /status/?t=json, with active upload/download ops. Addresses #493. |
---|
4544 | warner@allmydata.com**20080726004110] |
---|
4545 | [web: make t=json stats pages use text/plain, instead of leaving it at text/html |
---|
4546 | warner@allmydata.com**20080726002427] |
---|
4547 | [test_system.py: factor SystemTestMixin out of SystemTest |
---|
4548 | warner@allmydata.com**20080725223349] |
---|
4549 | [test_system.py: modify system-test setup code in preparation for merge with common.SystemTestMixin |
---|
4550 | warner@allmydata.com**20080725222931] |
---|
4551 | [test_system.py: move SystemTestMixin out into common.py, where further improvements will occur |
---|
4552 | warner@allmydata.com**20080725221758] |
---|
4553 | [test_system.py: create SystemTestMixin, with less cruft, for faster system-like tests |
---|
4554 | warner@allmydata.com**20080725221300] |
---|
4555 | [TAG allmydata-tahoe-1.2.0 |
---|
4556 | zooko@zooko.com**20080722014608] |
---|
4557 | Patch bundle hash: |
---|
4558 | 9ffee3526159795f1692c2d98097fcd60ac9b2c6 |
---|