1 | 1 patch for repository davidsarah@dev.allmydata.org:/home/darcs/tahoe/trunk: |
---|
2 | |
---|
3 | Sun Oct 2 04:53:16 BST 2011 david-sarah@jacaranda.org |
---|
4 | * Tests for ref #1547 |
---|
5 | |
---|
6 | New patches: |
---|
7 | |
---|
8 | [Tests for ref #1547 |
---|
9 | david-sarah@jacaranda.org**20111002035316 |
---|
10 | Ignore-this: 933f2b6ff148523f40475fe2d2578170 |
---|
11 | ] { |
---|
12 | hunk ./src/allmydata/test/test_web.py 1379 |
---|
13 | d.addBoth(self.should404, "test_GET_FILEURL_uri_missing") |
---|
14 | return d |
---|
15 | |
---|
16 | + def _check_upload_and_mkdir_forms(self, html): |
---|
17 | + # We should have a form to create a file, with radio buttons that allow |
---|
18 | + # the user to toggle whether it is a CHK/LIT (default), SDMF, or MDMF file. |
---|
19 | + self.failUnlessIn('name="t" value="upload"', html) |
---|
20 | + self.failUnlessIn('input checked="checked" type="radio" id="upload-chk" value="chk" name="format"', html) |
---|
21 | + self.failUnlessIn('input type="radio" id="upload-sdmf" value="sdmf" name="format"', html) |
---|
22 | + self.failUnlessIn('input type="radio" id="upload-mdmf" value="mdmf" name="format"', html) |
---|
23 | + |
---|
24 | + # We should also have the ability to create a mutable directory, with |
---|
25 | + # radio buttons that allow the user to toggle whether it is an SDMF (default) |
---|
26 | + # or MDMF directory. |
---|
27 | + self.failUnlessIn('name="t" value="mkdir"', html) |
---|
28 | + self.failUnlessIn('input checked="checked" type="radio" id="mkdir-sdmf" value="sdmf" name="format"', html) |
---|
29 | + self.failUnlessIn('input type="radio" id="mkdir-mdmf" value="mdmf" name="format"', html) |
---|
30 | + |
---|
31 | def test_GET_DIRECTORY_html(self): |
---|
32 | d = self.GET(self.public_url + "/foo", followRedirect=True) |
---|
33 | hunk ./src/allmydata/test/test_web.py 1396 |
---|
34 | - def _check(res): |
---|
35 | - self.failUnlessIn('<div class="toolbar-item"><a href="../../..">Return to Welcome page</a></div>',res) |
---|
36 | - # These are radio buttons that allow a user to toggle |
---|
37 | - # whether a particular mutable file is SDMF or MDMF. |
---|
38 | - self.failUnlessIn("mutable-type-mdmf", res) |
---|
39 | - self.failUnlessIn("mutable-type-sdmf", res) |
---|
40 | - # Similarly, these toggle whether a particular directory |
---|
41 | - # should be MDMF or SDMF. |
---|
42 | - self.failUnlessIn("mutable-directory-mdmf", res) |
---|
43 | - self.failUnlessIn("mutable-directory-sdmf", res) |
---|
44 | - self.failUnlessIn("quux", res) |
---|
45 | + def _check(html): |
---|
46 | + self.failUnlessIn('<div class="toolbar-item"><a href="../../..">Return to Welcome page</a></div>', html) |
---|
47 | + self._check_upload_and_mkdir_forms(html) |
---|
48 | + self.failUnlessIn("quux", html) |
---|
49 | d.addCallback(_check) |
---|
50 | return d |
---|
51 | |
---|
52 | hunk ./src/allmydata/test/test_web.py 1404 |
---|
53 | def test_GET_root_html(self): |
---|
54 | - # make sure that we have the option to upload an unlinked |
---|
55 | - # mutable file in SDMF and MDMF formats. |
---|
56 | - d = self.GET("/") |
---|
57 | - def _got_html(html): |
---|
58 | - # These are radio buttons that allow the user to toggle |
---|
59 | - # whether a particular mutable file is MDMF or SDMF. |
---|
60 | - self.failUnlessIn("mutable-type-mdmf", html) |
---|
61 | - self.failUnlessIn("mutable-type-sdmf", html) |
---|
62 | - # We should also have the ability to create a mutable directory. |
---|
63 | - self.failUnlessIn("mkdir", html) |
---|
64 | - # ...and we should have the ability to say whether that's an |
---|
65 | - # MDMF or SDMF directory |
---|
66 | - self.failUnlessIn("mutable-directory-mdmf", html) |
---|
67 | - self.failUnlessIn("mutable-directory-sdmf", html) |
---|
68 | - d.addCallback(_got_html) |
---|
69 | - return d |
---|
70 | - |
---|
71 | - def test_mutable_type_defaults(self): |
---|
72 | - # The checked="checked" attribute of the inputs corresponding to |
---|
73 | - # the mutable-type parameter should change as expected with the |
---|
74 | - # value configured in tahoe.cfg. |
---|
75 | - # |
---|
76 | - # By default, the value configured with the client is |
---|
77 | - # SDMF_VERSION, so that should be checked. |
---|
78 | - assert self.s.mutable_file_default == SDMF_VERSION |
---|
79 | - |
---|
80 | d = self.GET("/") |
---|
81 | hunk ./src/allmydata/test/test_web.py 1405 |
---|
82 | - def _got_html(html, value): |
---|
83 | - i = 'input checked="checked" type="radio" id="mutable-type-%s"' |
---|
84 | - self.failUnlessIn(i % value, html) |
---|
85 | - d.addCallback(_got_html, "sdmf") |
---|
86 | - d.addCallback(lambda ignored: |
---|
87 | - self.GET(self.public_url + "/foo", followRedirect=True)) |
---|
88 | - d.addCallback(_got_html, "sdmf") |
---|
89 | - # Now switch the configuration value to MDMF. The MDMF radio |
---|
90 | - # buttons should now be checked on these pages. |
---|
91 | - def _swap_values(ignored): |
---|
92 | - self.s.mutable_file_default = MDMF_VERSION |
---|
93 | - d.addCallback(_swap_values) |
---|
94 | - d.addCallback(lambda ignored: self.GET("/")) |
---|
95 | - d.addCallback(_got_html, "mdmf") |
---|
96 | - d.addCallback(lambda ignored: |
---|
97 | - self.GET(self.public_url + "/foo", followRedirect=True)) |
---|
98 | - d.addCallback(_got_html, "mdmf") |
---|
99 | + d.addCallback(self._check_upload_and_mkdir_forms) |
---|
100 | return d |
---|
101 | |
---|
102 | def test_GET_DIRURL(self): |
---|
103 | } |
---|
104 | |
---|
105 | Context: |
---|
106 | |
---|
107 | [docs/configuration.rst: add section about the types of node, and clarify when setting web.port enables web-API service. fixes #1444 |
---|
108 | zooko@zooko.com**20110926203801 |
---|
109 | Ignore-this: ab94d470c68e720101a7ff3c207a719e |
---|
110 | ] |
---|
111 | [TAG allmydata-tahoe-1.9.0a2 |
---|
112 | warner@lothar.com**20110925234811 |
---|
113 | Ignore-this: e9649c58f9c9017a7d55008938dba64f |
---|
114 | ] |
---|
115 | [NEWS: tidy up a little bit, reprioritize some items, hide some non-user-visible items |
---|
116 | warner@lothar.com**20110925233529 |
---|
117 | Ignore-this: 61f334cc3fa2539742c3e5d2801aee81 |
---|
118 | ] |
---|
119 | [test/test_runner.py: BinTahoe.test_path has rare nondeterministic failures; this patch probably fixes a problem where the actual cause of failure is masked by a string conversion error. |
---|
120 | david-sarah@jacaranda.org**20110927225336 |
---|
121 | Ignore-this: 6f1ad68004194cc9cea55ace3745e4af |
---|
122 | ] |
---|
123 | [mutable/publish.py: fix an unused import. refs #1542 |
---|
124 | david-sarah@jacaranda.org**20110925052206 |
---|
125 | Ignore-this: 2d69ac9e605e789c0aedfecb8877b7d7 |
---|
126 | ] |
---|
127 | [docs: fix some broken .rst links. refs #1542 |
---|
128 | david-sarah@jacaranda.org**20110925051001 |
---|
129 | Ignore-this: 5714ee650abfcaab0914537e1f206972 |
---|
130 | ] |
---|
131 | [NEWS: fix .rst formatting. |
---|
132 | david-sarah@jacaranda.org**20110925050119 |
---|
133 | Ignore-this: aa1d20acd23bdb8f8f6d0fa048ea0277 |
---|
134 | ] |
---|
135 | [NEWS: updates for 1.9alpha2. |
---|
136 | david-sarah@jacaranda.org**20110925045343 |
---|
137 | Ignore-this: d2c44e4e05d2ed662b7adfd2e43928bc |
---|
138 | ] |
---|
139 | [mutable/layout.py: make unpack_sdmf_checkstring and unpack_mdmf_checkstring more similar, and change an assert to give a more useful message if it fails. refs #1540 |
---|
140 | david-sarah@jacaranda.org**20110925023651 |
---|
141 | Ignore-this: 977aaa8cb16e06a6dcc3e27cb6e23956 |
---|
142 | ] |
---|
143 | [mutable/publish: handle unknown mutable share formats when handling errors |
---|
144 | kevan@isnotajoke.com**20110925004305 |
---|
145 | Ignore-this: 4d5fa44ef7d777c432eb10c9584ad51f |
---|
146 | ] |
---|
147 | [mutable/layout: break unpack_checkstring into unpack_mdmf_checkstring and unpack_sdmf_checkstring, add distinguisher function for checkstrings |
---|
148 | kevan@isnotajoke.com**20110925004134 |
---|
149 | Ignore-this: 57f49ed5a72e418a69c7286a225cc8fb |
---|
150 | ] |
---|
151 | [test/test_mutable: reenable mdmf publish surprise test |
---|
152 | kevan@isnotajoke.com**20110924235415 |
---|
153 | Ignore-this: f752e47a703684491305cc83d16248fb |
---|
154 | ] |
---|
155 | [mutable/publish: use unpack_mdmf_checkstring and unpack_sdmf_checkstring instead of unpack_checkstring. fixes #1540 |
---|
156 | kevan@isnotajoke.com**20110924235137 |
---|
157 | Ignore-this: 52ca3d9627b8b0ba758367b2bd6c7085 |
---|
158 | ] |
---|
159 | [control.py: unbreak speed-test: overwrite() wants a MutableData, not str |
---|
160 | Brian Warner <warner@lothar.com>**20110923073748 |
---|
161 | Ignore-this: 7dad7aff3d66165868a64ae22d225fa3 |
---|
162 | |
---|
163 | Really, all the upload/modify APIs should take a string or a filehandle, and |
---|
164 | internally wrap it as needed. Callers should not need to be aware of |
---|
165 | Uploadable() or MutableData() classes. |
---|
166 | ] |
---|
167 | [misc/coding_tools/check_interfaces.py: report all violations rather than only one for a given class, by including a forked version of verifyClass. refs #1474 |
---|
168 | david-sarah@jacaranda.org**20110916223450 |
---|
169 | Ignore-this: 927efeecf4d12588316826a4b3479aa9 |
---|
170 | ] |
---|
171 | [misc/coding_tools/check_interfaces.py: use os.walk instead of FilePath, since this script shouldn't really depend on Twisted. refs #1474 |
---|
172 | david-sarah@jacaranda.org**20110916212633 |
---|
173 | Ignore-this: 46eeb4236b34375227dac71ef53f5428 |
---|
174 | ] |
---|
175 | [misc/coding_tools/check-interfaces.py: reduce false-positives by adding Dummy* to the set of excluded classnames, and bench-* to the set of excluded basenames. refs #1474 |
---|
176 | david-sarah@jacaranda.org**20110916212624 |
---|
177 | Ignore-this: 4e78f6e6fe6c0e9be9df826a0e206804 |
---|
178 | ] |
---|
179 | [Add a script 'misc/coding_tools/check-interfaces.py' that checks whether zope interfaces are enforced. Also add 'check-interfaces', 'version-and-path', and 'code-checks' targets to the Makefile. fixes #1474 |
---|
180 | david-sarah@jacaranda.org**20110915161532 |
---|
181 | Ignore-this: 32d9bdc5bc4a86d21e927724560ad4b4 |
---|
182 | ] |
---|
183 | [mutable/publish.py: copy the self.writers dict before iterating over it, since we remove elements from it during the iteration. refs #393 |
---|
184 | david-sarah@jacaranda.org**20110924211208 |
---|
185 | Ignore-this: 76d4066b55d50ace2a34b87443b39094 |
---|
186 | ] |
---|
187 | [mutable/publish.py: simplify by refactoring self.outstanding to self.num_outstanding. refs #393 |
---|
188 | david-sarah@jacaranda.org**20110924205004 |
---|
189 | Ignore-this: 902768cfc529ae13ae0b7f67768a3643 |
---|
190 | ] |
---|
191 | [test_mutable.py: update SkipTest message for test_publish_surprise_mdmf to reference the right ticket number. refs #1540. |
---|
192 | david-sarah@jacaranda.org**20110923211622 |
---|
193 | Ignore-this: 44f16a6817a6b75930bbba18b0a516be |
---|
194 | ] |
---|
195 | [test_mutable.py: skip test_publish_surprise_mdmf, which is causing an error. refs #1534, #393 |
---|
196 | david-sarah@jacaranda.org**20110920183319 |
---|
197 | Ignore-this: 6fb020e09e8de437cbcc2c9f57835b31 |
---|
198 | ] |
---|
199 | [test/test_mutable: write publish surprise test for MDMF, rename existing test_publish_surprise to clarify that it is for SDMF |
---|
200 | kevan@isnotajoke.com**20110918003657 |
---|
201 | Ignore-this: 722c507e8f5b537ff920e0555951059a |
---|
202 | ] |
---|
203 | [test/test_mutable: refactor publish surprise test into common test fixture, rewrite test_publish_surprise to use test fixture |
---|
204 | kevan@isnotajoke.com**20110918003533 |
---|
205 | Ignore-this: 6f135888d400a99a09b5f9a4be443b6e |
---|
206 | ] |
---|
207 | [mutable/publish: add errback immediately after write, don't consume errors from other parts of the publisher |
---|
208 | kevan@isnotajoke.com**20110917234708 |
---|
209 | Ignore-this: 12bf6b0918a5dc5ffc30ece669fad51d |
---|
210 | ] |
---|
211 | [.darcs-boringfile: minor cleanups. |
---|
212 | david-sarah@jacaranda.org**20110920154918 |
---|
213 | Ignore-this: cab78e30d293da7e2832207dbee2ffeb |
---|
214 | ] |
---|
215 | [uri.py: fix two interface violations in verifier URI classes. refs #1474 |
---|
216 | david-sarah@jacaranda.org**20110920030156 |
---|
217 | Ignore-this: 454ddd1419556cb1d7576d914cb19598 |
---|
218 | ] |
---|
219 | [Make platform-detection code tolerate linux-3.0, patch by zooko. |
---|
220 | Brian Warner <warner@lothar.com>**20110915202620 |
---|
221 | Ignore-this: af63cf9177ae531984dea7a1cad03762 |
---|
222 | |
---|
223 | Otherwise address-autodetection can't find ifconfig. refs #1536 |
---|
224 | ] |
---|
225 | [test_web.py: fix a bug in _count_leases that was causing us to check only the lease count of one share file, not of all share files as intended. |
---|
226 | david-sarah@jacaranda.org**20110915185126 |
---|
227 | Ignore-this: d96632bc48d770b9b577cda1bbd8ff94 |
---|
228 | ] |
---|
229 | [docs: insert a newline at the beginning of known_issues.rst to see if this makes it render more nicely in trac |
---|
230 | zooko@zooko.com**20110914064728 |
---|
231 | Ignore-this: aca15190fa22083c5d4114d3965f5d65 |
---|
232 | ] |
---|
233 | [docs: remove the coding: utf-8 declaration at the to of known_issues.rst, since the trac rendering doesn't hide it |
---|
234 | zooko@zooko.com**20110914055713 |
---|
235 | Ignore-this: 941ed32f83ead377171aa7a6bd198fcf |
---|
236 | ] |
---|
237 | [docs: more cleanup of known_issues.rst -- now it passes "rst2html --verbose" without comment |
---|
238 | zooko@zooko.com**20110914055419 |
---|
239 | Ignore-this: 5505b3d76934bd97d0312cc59ed53879 |
---|
240 | ] |
---|
241 | [docs: more formatting improvements to known_issues.rst |
---|
242 | zooko@zooko.com**20110914051639 |
---|
243 | Ignore-this: 9ae9230ec9a38a312cbacaf370826691 |
---|
244 | ] |
---|
245 | [docs: reformatting of known_issues.rst |
---|
246 | zooko@zooko.com**20110914050240 |
---|
247 | Ignore-this: b8be0375079fb478be9d07500f9aaa87 |
---|
248 | ] |
---|
249 | [docs: fix formatting error in docs/known_issues.rst |
---|
250 | zooko@zooko.com**20110914045909 |
---|
251 | Ignore-this: f73fe74ad2b9e655aa0c6075acced15a |
---|
252 | ] |
---|
253 | [merge Tahoe-LAFS v1.8.3 release announcement with trunk |
---|
254 | zooko@zooko.com**20110913210544 |
---|
255 | Ignore-this: 163f2c3ddacca387d7308e4b9332516e |
---|
256 | ] |
---|
257 | [docs: release notes for Tahoe-LAFS v1.8.3 |
---|
258 | zooko@zooko.com**20110913165826 |
---|
259 | Ignore-this: 84223604985b14733a956d2fbaeb4e9f |
---|
260 | ] |
---|
261 | [tests: bump up the timeout in this test that fails on FreeStorm's CentOS in order to see if it is just very slow |
---|
262 | zooko@zooko.com**20110913024255 |
---|
263 | Ignore-this: 6a86d691e878cec583722faad06fb8e4 |
---|
264 | ] |
---|
265 | [interfaces: document that the 'fills-holes-with-zero-bytes' key should be used to detect whether a storage server has that behavior. refs #1528 |
---|
266 | david-sarah@jacaranda.org**20110913002843 |
---|
267 | Ignore-this: 1a00a6029d40f6792af48c5578c1fd69 |
---|
268 | ] |
---|
269 | [CREDITS: more CREDITS for Kevan and David-Sarah |
---|
270 | zooko@zooko.com**20110912223357 |
---|
271 | Ignore-this: 4ea8f0d6f2918171d2f5359c25ad1ada |
---|
272 | ] |
---|
273 | [merge NEWS about the mutable file bounds fixes with NEWS about work-in-progress |
---|
274 | zooko@zooko.com**20110913205521 |
---|
275 | Ignore-this: 4289a4225f848d6ae6860dd39bc92fa8 |
---|
276 | ] |
---|
277 | [doc: add NEWS item about fixes to potential palimpsest issues in mutable files |
---|
278 | zooko@zooko.com**20110912223329 |
---|
279 | Ignore-this: 9d63c95ddf95c7d5453c94a1ba4d406a |
---|
280 | ref. #1528 |
---|
281 | ] |
---|
282 | [merge the NEWS about the security fix (#1528) with the work-in-progress NEWS |
---|
283 | zooko@zooko.com**20110913205153 |
---|
284 | Ignore-this: 88e88a2ad140238c62010cf7c66953fc |
---|
285 | ] |
---|
286 | [doc: add NEWS entry about the issue which allows unauthorized deletion of shares |
---|
287 | zooko@zooko.com**20110912223246 |
---|
288 | Ignore-this: 77e06d09103d2ef6bb51ea3e5d6e80b0 |
---|
289 | ref. #1528 |
---|
290 | ] |
---|
291 | [doc: add entry in known_issues.rst about the issue which allows unauthorized deletion of shares |
---|
292 | zooko@zooko.com**20110912223135 |
---|
293 | Ignore-this: b26c6ea96b6c8740b93da1f602b5a4cd |
---|
294 | ref. #1528 |
---|
295 | ] |
---|
296 | [storage: more paranoid handling of bounds and palimpsests in mutable share files |
---|
297 | zooko@zooko.com**20110912222655 |
---|
298 | Ignore-this: a20782fa423779ee851ea086901e1507 |
---|
299 | * storage server ignores requests to extend shares by sending a new_length |
---|
300 | * storage server fills exposed holes (created by sending a write vector whose offset begins after the end of the current data) with 0 to avoid "palimpsest" exposure of previous contents |
---|
301 | * storage server zeroes out lease info at the old location when moving it to a new location |
---|
302 | ref. #1528 |
---|
303 | ] |
---|
304 | [storage: test that the storage server ignores requests to extend shares by sending a new_length, and that the storage server fills exposed holes with 0 to avoid "palimpsest" exposure of previous contents |
---|
305 | zooko@zooko.com**20110912222554 |
---|
306 | Ignore-this: 61ebd7b11250963efdf5b1734a35271 |
---|
307 | ref. #1528 |
---|
308 | ] |
---|
309 | [immutable: prevent clients from reading past the end of share data, which would allow them to learn the cancellation secret |
---|
310 | zooko@zooko.com**20110912222458 |
---|
311 | Ignore-this: da1ebd31433ea052087b75b2e3480c25 |
---|
312 | Declare explicitly that we prevent this problem in the server's version dict. |
---|
313 | fixes #1528 (there are two patches that are each a sufficient fix to #1528 and this is one of them) |
---|
314 | ] |
---|
315 | [storage: remove the storage server's "remote_cancel_lease" function |
---|
316 | zooko@zooko.com**20110912222331 |
---|
317 | Ignore-this: 1c32dee50e0981408576daffad648c50 |
---|
318 | We're removing this function because it is currently unused, because it is dangerous, and because the bug described in #1528 leaks the cancellation secret, which allows anyone who knows a file's storage index to abuse this function to delete shares of that file. |
---|
319 | fixes #1528 (there are two patches that are each a sufficient fix to #1528 and this is one of them) |
---|
320 | ] |
---|
321 | [storage: test that the storage server does *not* have a "remote_cancel_lease" function |
---|
322 | zooko@zooko.com**20110912222324 |
---|
323 | Ignore-this: 21c652009704652d35f34651f98dd403 |
---|
324 | We're removing this function because it is currently unused, because it is dangerous, and because the bug described in #1528 leaks the cancellation secret, which allows anyone who knows a file's storage index to abuse this function to delete shares of that file. |
---|
325 | ref. #1528 |
---|
326 | ] |
---|
327 | [immutable: test whether the server allows clients to read past the end of share data, which would allow them to learn the cancellation secret |
---|
328 | zooko@zooko.com**20110912221201 |
---|
329 | Ignore-this: 376e47b346c713d37096531491176349 |
---|
330 | Also test whether the server explicitly declares that it prevents this problem. |
---|
331 | ref #1528 |
---|
332 | ] |
---|
333 | [Retrieve._activate_enough_peers: rewrite Verify logic |
---|
334 | Brian Warner <warner@lothar.com>**20110909181150 |
---|
335 | Ignore-this: 9367c11e1eacbf025f75ce034030d717 |
---|
336 | ] |
---|
337 | [Retrieve: implement/test stopProducing |
---|
338 | Brian Warner <warner@lothar.com>**20110909181150 |
---|
339 | Ignore-this: 47b2c3df7dc69835e0a066ca12e3c178 |
---|
340 | ] |
---|
341 | [move DownloadStopped from download.common to interfaces |
---|
342 | Brian Warner <warner@lothar.com>**20110909181150 |
---|
343 | Ignore-this: 8572acd3bb16e50341dbed8eb1d90a50 |
---|
344 | ] |
---|
345 | [retrieve.py: remove vestigal self._validated_readers |
---|
346 | Brian Warner <warner@lothar.com>**20110909181150 |
---|
347 | Ignore-this: faab2ec14e314a53a2ffb714de626e2d |
---|
348 | ] |
---|
349 | [Retrieve: rewrite flow-control: use a top-level loop() to catch all errors |
---|
350 | Brian Warner <warner@lothar.com>**20110909181150 |
---|
351 | Ignore-this: e162d2cd53b3d3144fc6bc757e2c7714 |
---|
352 | |
---|
353 | This ought to close the potential for dropped errors and hanging downloads. |
---|
354 | Verify needs to be examined, I may have broken it, although all tests pass. |
---|
355 | ] |
---|
356 | [Retrieve: merge _validate_active_prefixes into _add_active_peers |
---|
357 | Brian Warner <warner@lothar.com>**20110909181150 |
---|
358 | Ignore-this: d3ead31e17e69394ae7058eeb5beaf4c |
---|
359 | ] |
---|
360 | [Retrieve: remove the initial prefix-is-still-good check |
---|
361 | Brian Warner <warner@lothar.com>**20110909181150 |
---|
362 | Ignore-this: da66ee51c894eaa4e862e2dffb458acc |
---|
363 | |
---|
364 | This check needs to be done with each fetch from the storage server, to |
---|
365 | detect when someone has changed the share (i.e. our servermap goes stale). |
---|
366 | Doing it just once at the beginning of retrieve isn't enough: a write might |
---|
367 | occur after the first segment but before the second, etc. |
---|
368 | |
---|
369 | _try_to_validate_prefix() was not removed: it will be used by the future |
---|
370 | check-with-each-fetch code. |
---|
371 | |
---|
372 | test_mutable.Roundtrip.test_corrupt_all_seqnum_late was disabled, since it |
---|
373 | fails until this check is brought back. (the corruption it applies only |
---|
374 | touches the prefix, not the block data, so the check-less retrieve actually |
---|
375 | tolerates it). Don't forget to re-enable it once the check is brought back. |
---|
376 | ] |
---|
377 | [MDMFSlotReadProxy: remove the queue |
---|
378 | Brian Warner <warner@lothar.com>**20110909181150 |
---|
379 | Ignore-this: 96673cb8dda7a87a423de2f4897d66d2 |
---|
380 | |
---|
381 | This is a neat trick to reduce Foolscap overhead, but the need for an |
---|
382 | explicit flush() complicates the Retrieve path and makes it prone to |
---|
383 | lost-progress bugs. |
---|
384 | |
---|
385 | Also change test_mutable.FakeStorageServer to tolerate multiple reads of the |
---|
386 | same share in a row, a limitation exposed by turning off the queue. |
---|
387 | ] |
---|
388 | [rearrange Retrieve: first step, shouldn't change order of execution |
---|
389 | Brian Warner <warner@lothar.com>**20110909181149 |
---|
390 | Ignore-this: e3006368bfd2802b82ea45c52409e8d6 |
---|
391 | ] |
---|
392 | [CLI: test_cli.py -- remove an unnecessary call in test_mkdir_mutable_type. refs #1527 |
---|
393 | david-sarah@jacaranda.org**20110906183730 |
---|
394 | Ignore-this: 122e2ffbee84861c32eda766a57759cf |
---|
395 | ] |
---|
396 | [CLI: improve test for 'tahoe mkdir --mutable-type='. refs #1527 |
---|
397 | david-sarah@jacaranda.org**20110906183020 |
---|
398 | Ignore-this: f1d4598e6c536f0a2b15050b3bc0ef9d |
---|
399 | ] |
---|
400 | [CLI: make the --mutable-type option value for 'tahoe put' and 'tahoe mkdir' case-insensitive, and change --help for these commands accordingly. fixes #1527 |
---|
401 | david-sarah@jacaranda.org**20110905020922 |
---|
402 | Ignore-this: 75a6df0a2df9c467d8c010579e9a024e |
---|
403 | ] |
---|
404 | [cli: make --mutable-type imply --mutable in 'tahoe put' |
---|
405 | Kevan Carstensen <kevan@isnotajoke.com>**20110903190920 |
---|
406 | Ignore-this: 23336d3c43b2a9554e40c2a11c675e93 |
---|
407 | ] |
---|
408 | [SFTP: add a comment about a subtle interaction between OverwriteableFileConsumer and GeneralSFTPFile, and test the case it is commenting on. |
---|
409 | david-sarah@jacaranda.org**20110903222304 |
---|
410 | Ignore-this: 980c61d4dd0119337f1463a69aeebaf0 |
---|
411 | ] |
---|
412 | [improve the storage/mutable.py asserts even more |
---|
413 | warner@lothar.com**20110901160543 |
---|
414 | Ignore-this: 5b2b13c49bc4034f96e6e3aaaa9a9946 |
---|
415 | ] |
---|
416 | [storage/mutable.py: special characters in struct.foo arguments indicate standard as opposed to native sizes, we should be using these characters in these asserts |
---|
417 | wilcoxjg@gmail.com**20110901084144 |
---|
418 | Ignore-this: 28ace2b2678642e4d7269ddab8c67f30 |
---|
419 | ] |
---|
420 | [docs/write_coordination.rst: fix formatting and add more specific warning about access via sshfs. |
---|
421 | david-sarah@jacaranda.org**20110831232148 |
---|
422 | Ignore-this: cd9c851d3eb4e0a1e088f337c291586c |
---|
423 | ] |
---|
424 | [test_mutable.Version: consolidate some tests, reduce runtime from 19s to 15s |
---|
425 | warner@lothar.com**20110831050451 |
---|
426 | Ignore-this: 64815284d9e536f8f3798b5f44cf580c |
---|
427 | ] |
---|
428 | [mutable/retrieve: handle the case where self._read_length is 0. |
---|
429 | Kevan Carstensen <kevan@isnotajoke.com>**20110830210141 |
---|
430 | Ignore-this: fceafbe485851ca53f2774e5a4fd8d30 |
---|
431 | |
---|
432 | Note that the downloader will still fetch a segment for a zero-length |
---|
433 | read, which is wasteful. Fixing that isn't specifically required to fix |
---|
434 | #1512, but it should probably be fixed before 1.9. |
---|
435 | ] |
---|
436 | [NEWS: added summary of all changes since 1.8.2. Needs editing. |
---|
437 | Brian Warner <warner@lothar.com>**20110830163205 |
---|
438 | Ignore-this: 273899b37a899fc6919b74572454b8b2 |
---|
439 | ] |
---|
440 | [test_mutable.Update: only upload the files needed for each test. refs #1500 |
---|
441 | Brian Warner <warner@lothar.com>**20110829072717 |
---|
442 | Ignore-this: 4d2ab4c7523af9054af7ecca9c3d9dc7 |
---|
443 | |
---|
444 | This first step shaves 15% off the runtime: from 139s to 119s on my laptop. |
---|
445 | It also fixes a couple of places where a Deferred was being dropped, which |
---|
446 | would cause two tests to run in parallel and also confuse error reporting. |
---|
447 | ] |
---|
448 | [Let Uploader retain History instead of passing it into upload(). Fixes #1079. |
---|
449 | Brian Warner <warner@lothar.com>**20110829063246 |
---|
450 | Ignore-this: 3902c58ec12bd4b2d876806248e19f17 |
---|
451 | |
---|
452 | This consistently records all immutable uploads in the Recent Uploads And |
---|
453 | Downloads page, regardless of code path. Previously, certain webapi upload |
---|
454 | operations (like PUT /uri/$DIRCAP/newchildname) failed to pass the History |
---|
455 | object and were left out. |
---|
456 | ] |
---|
457 | [Fix mutable publish/retrieve timing status displays. Fixes #1505. |
---|
458 | Brian Warner <warner@lothar.com>**20110828232221 |
---|
459 | Ignore-this: 4080ce065cf481b2180fd711c9772dd6 |
---|
460 | |
---|
461 | publish: |
---|
462 | * encrypt and encode times are cumulative, not just current-segment |
---|
463 | |
---|
464 | retrieve: |
---|
465 | * same for decrypt and decode times |
---|
466 | * update "current status" to include segment number |
---|
467 | * set status to Finished/Failed when download is complete |
---|
468 | * set progress to 1.0 when complete |
---|
469 | |
---|
470 | More improvements to consider: |
---|
471 | * progress is currently 0% or 100%: should calculate how many segments are |
---|
472 | involved (remembering retrieve can be less than the whole file) and set it |
---|
473 | to a fraction |
---|
474 | * "fetch" time is fuzzy: what we want is to know how much of the delay is not |
---|
475 | our own fault, but since we do decode/decrypt work while waiting for more |
---|
476 | shares, it's not straightforward |
---|
477 | ] |
---|
478 | [Teach 'tahoe debug catalog-shares about MDMF. Closes #1507. |
---|
479 | Brian Warner <warner@lothar.com>**20110828080931 |
---|
480 | Ignore-this: 56ef2951db1a648353d7daac6a04c7d1 |
---|
481 | ] |
---|
482 | [debug.py: remove some dead comments |
---|
483 | Brian Warner <warner@lothar.com>**20110828074556 |
---|
484 | Ignore-this: 40e74040dd4d14fd2f4e4baaae506b31 |
---|
485 | ] |
---|
486 | [hush pyflakes |
---|
487 | Brian Warner <warner@lothar.com>**20110828074254 |
---|
488 | Ignore-this: bef9d537a969fa82fe4decc4ba2acb09 |
---|
489 | ] |
---|
490 | [MutableFileNode.set_downloader_hints: never depend upon order of dict.values() |
---|
491 | Brian Warner <warner@lothar.com>**20110828074103 |
---|
492 | Ignore-this: caaf1aa518dbdde4d797b7f335230faa |
---|
493 | |
---|
494 | The old code was calculating the "extension parameters" (a list) from the |
---|
495 | downloader hints (a dictionary) with hints.values(), which is not stable, and |
---|
496 | would result in corrupted filecaps (with the 'k' and 'segsize' hints |
---|
497 | occasionally swapped). The new code always uses [k,segsize]. |
---|
498 | ] |
---|
499 | [layout.py: fix MDMF share layout documentation |
---|
500 | Brian Warner <warner@lothar.com>**20110828073921 |
---|
501 | Ignore-this: 3f13366fed75b5e31b51ae895450a225 |
---|
502 | ] |
---|
503 | [teach 'tahoe debug dump-share' about MDMF and offsets. refs #1507 |
---|
504 | Brian Warner <warner@lothar.com>**20110828073834 |
---|
505 | Ignore-this: 3a9d2ef9c47a72bf1506ba41199a1dea |
---|
506 | ] |
---|
507 | [test_mutable.Version.test_debug: use splitlines() to fix buildslaves |
---|
508 | Brian Warner <warner@lothar.com>**20110828064728 |
---|
509 | Ignore-this: c7f6245426fc80b9d1ae901d5218246a |
---|
510 | |
---|
511 | Any slave running in a directory with spaces in the name was miscounting |
---|
512 | shares, causing the test to fail. |
---|
513 | ] |
---|
514 | [test_mutable.Version: exercise 'tahoe debug find-shares' on MDMF. refs #1507 |
---|
515 | Brian Warner <warner@lothar.com>**20110828005542 |
---|
516 | Ignore-this: cb20bea1c28bfa50a72317d70e109672 |
---|
517 | |
---|
518 | Also changes NoNetworkGrid to put shares in storage/shares/ . |
---|
519 | ] |
---|
520 | [test_mutable.py: oops, missed a .todo |
---|
521 | Brian Warner <warner@lothar.com>**20110828002118 |
---|
522 | Ignore-this: fda09ae86481352b7a627c278d2a3940 |
---|
523 | ] |
---|
524 | [test_mutable: merge davidsarah's patch with my Version refactorings |
---|
525 | warner@lothar.com**20110827235707 |
---|
526 | Ignore-this: b5aaf481c90d99e33827273b5d118fd0 |
---|
527 | ] |
---|
528 | [Make the immutable/read-only constraint checking for MDMF URIs identical to that for SSK URIs. refs #393 |
---|
529 | david-sarah@jacaranda.org**20110823012720 |
---|
530 | Ignore-this: e1f59d7ff2007c81dbef2aeb14abd721 |
---|
531 | ] |
---|
532 | [Additional tests for MDMF URIs and for zero-length files. refs #393 |
---|
533 | david-sarah@jacaranda.org**20110823011532 |
---|
534 | Ignore-this: a7cc0c09d1d2d72413f9cd227c47a9d5 |
---|
535 | ] |
---|
536 | [Additional tests for zero-length partial reads and updates to mutable versions. refs #393 |
---|
537 | david-sarah@jacaranda.org**20110822014111 |
---|
538 | Ignore-this: 5fc6f4d06e11910124e4a277ec8a43ea |
---|
539 | ] |
---|
540 | [test_mutable.Version: factor out some expensive uploads, save 25% runtime |
---|
541 | Brian Warner <warner@lothar.com>**20110827232737 |
---|
542 | Ignore-this: ea37383eb85ea0894b254fe4dfb45544 |
---|
543 | ] |
---|
544 | [SDMF: update filenode with correct k/N after Retrieve. Fixes #1510. |
---|
545 | Brian Warner <warner@lothar.com>**20110827225031 |
---|
546 | Ignore-this: b50ae6e1045818c400079f118b4ef48 |
---|
547 | |
---|
548 | Without this, we get a regression when modifying a mutable file that was |
---|
549 | created with more shares (larger N) than our current tahoe.cfg . The |
---|
550 | modification attempt creates new versions of the (0,1,..,newN-1) shares, but |
---|
551 | leaves the old versions of the (newN,..,oldN-1) shares alone (and throws a |
---|
552 | assertion error in SDMFSlotWriteProxy.finish_publishing in the process). |
---|
553 | |
---|
554 | The mixed versions that result (some shares with e.g. N=10, some with N=20, |
---|
555 | such that both versions are recoverable) cause problems for the Publish code, |
---|
556 | even before MDMF landed. Might be related to refs #1390 and refs #1042. |
---|
557 | ] |
---|
558 | [layout.py: annotate assertion to figure out 'tahoe backup' failure |
---|
559 | Brian Warner <warner@lothar.com>**20110827195253 |
---|
560 | Ignore-this: 9b92b954e3ed0d0f80154fff1ff674e5 |
---|
561 | ] |
---|
562 | [Add 'tahoe debug dump-cap' support for MDMF, DIR2-CHK, DIR2-MDMF. refs #1507. |
---|
563 | Brian Warner <warner@lothar.com>**20110827195048 |
---|
564 | Ignore-this: 61c6af5e33fc88e0251e697a50addb2c |
---|
565 | |
---|
566 | This also adds tests for all those cases, and fixes an omission in uri.py |
---|
567 | that broke parsing of DIR2-MDMF-Verifier and DIR2-CHK-Verifier. |
---|
568 | ] |
---|
569 | [MDMF: more writable/writeable consistentifications |
---|
570 | warner@lothar.com**20110827190602 |
---|
571 | Ignore-this: 22492a9e20c1819ddb12091062888b55 |
---|
572 | ] |
---|
573 | [MDMF: s/Writable/Writeable/g, for consistency with existing SDMF code |
---|
574 | warner@lothar.com**20110827183357 |
---|
575 | Ignore-this: 9dd312acedbdb2fc2f7bef0d0fb17c0b |
---|
576 | ] |
---|
577 | [setup.cfg: remove no-longer-supported test_mac_diskimage alias. refs #1479 |
---|
578 | david-sarah@jacaranda.org**20110826230345 |
---|
579 | Ignore-this: 40e908b8937322a290fb8012bfcad02a |
---|
580 | ] |
---|
581 | [test_mutable.Update: increase timeout from 120s to 400s, slaves are failing |
---|
582 | Brian Warner <warner@lothar.com>**20110825230140 |
---|
583 | Ignore-this: 101b1924a30cdbda9b2e419e95ca15ec |
---|
584 | ] |
---|
585 | [tests: fix check_memory test |
---|
586 | zooko@zooko.com**20110825201116 |
---|
587 | Ignore-this: 4d66299fa8cb61d2ca04b3f45344d835 |
---|
588 | fixes #1503 |
---|
589 | ] |
---|
590 | [TAG allmydata-tahoe-1.9.0a1 |
---|
591 | warner@lothar.com**20110825161122 |
---|
592 | Ignore-this: 3cbf49f00dbda58189f893c427f65605 |
---|
593 | ] |
---|
594 | Patch bundle hash: |
---|
595 | 3fb1355fa8e36895eca7939e8ab14a315aa8fc9a |
---|