Ticket #999: asyncify-tests.dpatch

File asyncify-tests.dpatch, 13.5 KB (added by zooko, at 2011-09-29T20:29:16Z)
Line 
11 patch for repository /home/zooko/playground/tahoe-lafs/999/dsv16:
2
3Thu Sep 29 14:25:24 MDT 2011  zooko@zooko.com
4  * asyncify test_hung_server -- now it works ; also asyncify a test in test_mutable, but it mysteriously fails with hash mismatch ; also remove a debugprint
5
6New patches:
7
8[asyncify test_hung_server -- now it works ; also asyncify a test in test_mutable, but it mysteriously fails with hash mismatch ; also remove a debugprint
9zooko@zooko.com**20110929202524
10 Ignore-this: b1617ae8db051e34e8cf2997beb6a5ea
11] {
12hunk ./src/allmydata/test/test_hung_server.py 7
13 from twisted.internet import defer
14 
15 from allmydata.util.consumer import download_to_data
16+
17 from allmydata.immutable import upload
18 from allmydata.mutable.common import UnrecoverableFileError
19 from allmydata.mutable.publish import MutableData
20hunk ./src/allmydata/test/test_hung_server.py 70
21             if i_serverid in serverids:
22                 self.copy_share((i_shnum, i_serverid, i_sharefp), self.uri, to_server.original)
23 
24-        self.shares = self.find_uri_shares(self.uri)
25+        d = self.find_uri_shares(self.uri)
26+        def _then(shares):
27+            self.shares = shares
28+            return shares
29+        d.addCallback(_then)
30+        return d
31 
32     def _set_up(self, mutable, testdir, num_clients=1, num_servers=10):
33         self.mutable = mutable
34hunk ./src/allmydata/test/test_hung_server.py 97
35             d = nm.create_mutable_file(uploadable)
36             def _uploaded_mutable(node):
37                 self.uri = node.get_uri()
38-                self.shares = self.find_uri_shares(self.uri)
39+                d2 = self.find_uri_shares(self.uri)
40+                def _then(shares):
41+                    self.shares = shares
42+                    return shares
43+                d2.addCallback(_then)
44+                return d2
45             d.addCallback(_uploaded_mutable)
46         else:
47             data = upload.Data(immutable_plaintext, convergence="")
48hunk ./src/allmydata/test/test_hung_server.py 109
49             d = self.c0.upload(data)
50             def _uploaded_immutable(upload_res):
51                 self.uri = upload_res.uri
52-                self.shares = self.find_uri_shares(self.uri)
53+                d2 = self.find_uri_shares(self.uri)
54+                def _then(shares):
55+                    self.shares = shares
56+                    return shares
57+                d2.addCallback(_then)
58+                return d2
59             d.addCallback(_uploaded_immutable)
60         return d
61 
62hunk ./src/allmydata/test/test_mutable.py 1
63+from allmydata.util.assertutil import _assert
64 
65 import os, re, base64
66 from cStringIO import StringIO
67hunk ./src/allmydata/test/test_mutable.py 3675
68             fileutil.fp_make_dirs(storage_dir)
69             storage_dir.child("%d" % share).setContent(sharedata)
70         # ...and verify that the shares are there.
71-        shares = self.find_uri_shares(self.sdmf_old_cap)
72-        assert len(shares) == 10
73+        d = self.find_uri_shares(self.sdmf_old_cap)
74+        def _then(shares):
75+            _assert(len(shares) == 10, length=len(shares), shares=shares)
76+            return shares
77+        d.addCallback(_then)
78+        return d
79 
80     def test_new_downloader_can_read_old_shares(self):
81         self.basedir = "mutable/Interoperability/new_downloader_can_read_old_shares"
82hunk ./src/allmydata/test/test_mutable.py 3685
83         self.set_up_grid()
84-        self.copy_sdmf_shares()
85-        nm = self.g.clients[0].nodemaker
86-        n = nm.create_from_cap(self.sdmf_old_cap)
87-        d = n.download_best_version()
88-        d.addCallback(self.failUnlessEqual, self.sdmf_old_contents)
89+        d = self.copy_sdmf_shares()
90+        def _then(dummy):
91+            nm = self.g.clients[0].nodemaker
92+            n = nm.create_from_cap(self.sdmf_old_cap)
93+            d2 = n.download_best_version()
94+            d2.addCallback(self.failUnlessEqual, self.sdmf_old_contents)
95+            return d2
96+        d.addCallback(_then)
97         return d
98 
99 class DifferentEncoding(unittest.TestCase):
100hunk ./src/allmydata/util/fileutil.py 198
101     fp_make_dirs() creates it and before fp_make_dirs() checks that it
102     exists, raise an exception.
103     """
104-    log.msg( "xxx 0 %s" % (dirfp,))
105     tx = None
106     try:
107         dirfp.makedirs()
108}
109
110Context:
111
112[Comment out an assertion that was causing all mutable tests to fail. THIS IS PROBABLY WRONG. refs #999
113david-sarah@jacaranda.org**20110929041110
114 Ignore-this: 1e402d51ec021405b191757a37b35a94
115] 
116[Fix some incorrect or incomplete asyncifications. refs #999
117david-sarah@jacaranda.org**20110929040800
118 Ignore-this: ed70e9af2190217c84fd2e8c41de4c7e
119] 
120[Add some debugging assertions that share objects are not Deferred. refs #999
121david-sarah@jacaranda.org**20110929040657
122 Ignore-this: 5c7f56a146f5a3c353c6fe5b090a7dc5
123] 
124[scripts/debug.py: take account of some API changes. refs #999
125david-sarah@jacaranda.org**20110929040539
126 Ignore-this: 933c3d44b993c041105038c7d4514386
127] 
128[Make get_sharesets_for_prefix synchronous for the time being (returning a Deferred breaks crawlers). refs #999
129david-sarah@jacaranda.org**20110929040136
130 Ignore-this: e94b93d4f3f6173d9de80c4121b68748
131] 
132[More asyncification of tests. refs #999
133david-sarah@jacaranda.org**20110929035644
134 Ignore-this: 28b650a9ef593b3fd7524f6cb562ad71
135] 
136[no_network.py: add some assertions that the things we wrap using LocalWrapper are not Deferred (which is not supported and causes hard-to-debug failures). refs #999
137david-sarah@jacaranda.org**20110929035537
138 Ignore-this: fd103fbbb54fbbc17b9517c78313120e
139] 
140[Add some debugging code (switched off) to no_network.py. When switched on (PRINT_TRACEBACKS = True), this prints the stack trace associated with the caller of a remote method, mitigating the problem that the traceback normally gets lost at that point. TODO: think of a better way to preserve the traceback that can be enabled by default. refs #999
141david-sarah@jacaranda.org**20110929035341
142 Ignore-this: 2a593ec3ee450719b241ea8d60a0f320
143] 
144[Use factory functions to create share objects rather than their constructors, to allow the factory to return a Deferred. Also change some methods on IShareSet and IStoredShare to return Deferreds. Refactor some constants associated with mutable shares. refs #999
145david-sarah@jacaranda.org**20110928052324
146 Ignore-this: bce0ac02f475bcf31b0e3b340cd91198
147] 
148[Work in progress for asyncifying the backend interface (necessary to call txaws methods that return Deferreds). This is incomplete so lots of tests fail. refs #999
149david-sarah@jacaranda.org**20110927073903
150 Ignore-this: ebdc6c06c3baa9460af128ec8f5b418b
151] 
152[mutable/publish.py: don't crash if there are no writers in _report_verinfo. refs #999
153david-sarah@jacaranda.org**20110928014126
154 Ignore-this: 9999c82bb3057f755a6e86baeafb8a39
155] 
156[scripts/debug.py: fix incorrect arguments to dump_immutable_share. refs #999
157david-sarah@jacaranda.org**20110928014049
158 Ignore-this: 1078ee3f06a2f36b29e0cf694d2851cd
159] 
160[test_system.py: more debug output for a failing check in test_filesystem. refs #999
161david-sarah@jacaranda.org**20110928014019
162 Ignore-this: e8bb77b8f7db12db7cd69efb6e0ed130
163] 
164[test_system.py: incorrect arguments were being passed to the constructor for MutableDiskShare. refs #999
165david-sarah@jacaranda.org**20110928013857
166 Ignore-this: e9719f74e7e073e37537f9a71614b8a0
167] 
168[Undo an incompatible change to RIStorageServer. refs #999
169david-sarah@jacaranda.org**20110928013729
170 Ignore-this: bea4c0f6cb71202fab942cd846eab693
171] 
172[mutable/publish.py: resolve conflicting patches. refs #999
173david-sarah@jacaranda.org**20110927073530
174 Ignore-this: 6154a113723dc93148151288bd032439
175] 
176[test_storage.py: fix test_no_st_blocks. refs #999
177david-sarah@jacaranda.org**20110927072848
178 Ignore-this: 5f12b784920f87d09c97c676d0afa6f8
179] 
180[Cleanups to S3 backend (not including Deferred changes). refs #999
181david-sarah@jacaranda.org**20110927071855
182 Ignore-this: f0dca788190d92b1edb1ee1498fb34dc
183] 
184[Cleanups to disk backend. refs #999
185david-sarah@jacaranda.org**20110927071544
186 Ignore-this: e9d3fd0e85aaf301c04342fffdc8f26
187] 
188[test_storage.py: fix test_status_bad_disk_stats. refs #999
189david-sarah@jacaranda.org**20110927071403
190 Ignore-this: 6108fee69a60962be2df2ad11b483a11
191] 
192[util/deferredutil.py: add some utilities for asynchronous iteration. refs #999
193david-sarah@jacaranda.org**20110927070947
194 Ignore-this: ac4946c1e5779ea64b85a1a420d34c9e
195] 
196[Add 'has-immutable-readv' to server version information. refs #999
197david-sarah@jacaranda.org**20110923220935
198 Ignore-this: c3c4358f2ab8ac503f99c968ace8efcf
199] 
200[Minor cleanup to disk backend. refs #999
201david-sarah@jacaranda.org**20110923205510
202 Ignore-this: 79f92d7c2edb14cfedb167247c3f0d08
203] 
204[Update the S3 backend. refs #999
205david-sarah@jacaranda.org**20110923205345
206 Ignore-this: 5ca623a17e09ddad4cab2f51b49aec0a
207] 
208[Update the null backend to take into account interface changes. Also, it now records which shares are present, but not their contents. refs #999
209david-sarah@jacaranda.org**20110923205219
210 Ignore-this: 42a23d7e253255003dc63facea783251
211] 
212[Make EmptyShare.check_testv a simple function. refs #999
213david-sarah@jacaranda.org**20110923204945
214 Ignore-this: d0132c085f40c39815fa920b77fc39ab
215] 
216[The cancel secret needs to be unique, even if it isn't explicitly provided. refs #999
217david-sarah@jacaranda.org**20110923204914
218 Ignore-this: 6c44bb908dd4c0cdc59506b2d87a47b0
219] 
220[Implement readv for immutable shares. refs #999
221david-sarah@jacaranda.org**20110923204611
222 Ignore-this: 24f14b663051169d66293020e40c5a05
223] 
224[Remove redundant si_s argument from check_write_enabler. refs #999
225david-sarah@jacaranda.org**20110923204425
226 Ignore-this: 25be760118dbce2eb661137f7d46dd20
227] 
228[interfaces.py: add fill_in_space_stats method to IStorageBackend. refs #999
229david-sarah@jacaranda.org**20110923203723
230 Ignore-this: 59371c150532055939794fed6c77dcb6
231] 
232[Add incomplete S3 backend. refs #999
233david-sarah@jacaranda.org**20110923041314
234 Ignore-this: b48df65699e3926dcbb87b5f755cdbf1
235] 
236[Move advise_corrupt_share to allmydata/storage/backends/base.py, since it will be common to the disk and S3 backends. refs #999
237david-sarah@jacaranda.org**20110923041115
238 Ignore-this: 782b49f243bd98fcb6c249f8e40fd9f
239] 
240[A few comment cleanups. refs #999
241david-sarah@jacaranda.org**20110923041003
242 Ignore-this: f574b4a3954b6946016646011ad15edf
243] 
244[mutable/publish.py: elements should not be removed from a dictionary while it is being iterated over. refs #393
245david-sarah@jacaranda.org**20110923040825
246 Ignore-this: 135da94bd344db6ccd59a576b54901c1
247] 
248[Blank line cleanups.
249david-sarah@jacaranda.org**20110923012044
250 Ignore-this: 8e1c4ecb5b0c65673af35872876a8591
251] 
252[Reinstate the cancel_lease methods of ImmutableDiskShare and MutableDiskShare, since they are needed for lease expiry. refs #999
253david-sarah@jacaranda.org**20110922183323
254 Ignore-this: a11fb0dd0078ff627cb727fc769ec848
255] 
256[Fix most of the crawler tests. refs #999
257david-sarah@jacaranda.org**20110922183008
258 Ignore-this: 116c0848008f3989ba78d87c07ec783c
259] 
260[Fix some more test failures. refs #999
261david-sarah@jacaranda.org**20110922045451
262 Ignore-this: b726193cbd03a7c3d343f6e4a0f33ee7
263] 
264[uri.py: resolve a conflict between trunk and the pluggable-backends patches. refs #999
265david-sarah@jacaranda.org**20110921222038
266 Ignore-this: ffeeab60d8e71a6a29a002d024d76fcf
267] 
268[Fix more shallow bugs, mainly FilePathification. Also, remove the max_space_per_bucket parameter from BucketWriter since it can be obtained from the _max_size attribute of the share (via a new get_allocated_size() accessor). refs #999
269david-sarah@jacaranda.org**20110921221421
270 Ignore-this: 600e3ccef8533aa43442fa576c7d88cf
271] 
272[More fixes to tests needed for pluggable backends. refs #999
273david-sarah@jacaranda.org**20110921184649
274 Ignore-this: 9be0d3a98e350fd4e17a07d2c00bb4ca
275] 
276[docs/backends/S3.rst, disk.rst: describe type of space settings as 'quantity of space', not 'str'. refs #999
277david-sarah@jacaranda.org**20110921031705
278 Ignore-this: a74ed8e01b0a1ab5f07a1487d7bf138
279] 
280[docs/backends/S3.rst: remove Issues section. refs #999
281david-sarah@jacaranda.org**20110921031625
282 Ignore-this: c83d8f52b790bc32488869e6ee1df8c2
283] 
284[Fix some incorrect attribute accesses. refs #999
285david-sarah@jacaranda.org**20110921031207
286 Ignore-this: f1ea4c3ea191f6d4b719afaebd2b2bcd
287] 
288[docs/backends: document the configuration options for the pluggable backends scheme. refs #999
289david-sarah@jacaranda.org**20110920171737
290 Ignore-this: 5947e864682a43cb04e557334cda7c19
291] 
292[Work-in-progress, includes fix to bug involving BucketWriter. refs #999
293david-sarah@jacaranda.org**20110920033803
294 Ignore-this: 64e9e019421454e4d08141d10b6e4eed
295] 
296[Pluggable backends -- all other changes. refs #999
297david-sarah@jacaranda.org**20110919233256
298 Ignore-this: 1a77b6b5d178b32a9b914b699ba7e957
299] 
300[Pluggable backends -- new and moved files, changes to moved files. refs #999
301david-sarah@jacaranda.org**20110919232926
302 Ignore-this: ec5d2d1362a092d919e84327d3092424
303] 
304[interfaces.py: 'which -> that' grammar cleanup.
305david-sarah@jacaranda.org**20110825003217
306 Ignore-this: a3e15f3676de1b346ad78aabdfb8cac6
307] 
308[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.
309david-sarah@jacaranda.org**20110927225336
310 Ignore-this: 6f1ad68004194cc9cea55ace3745e4af
311] 
312[docs/configuration.rst: add section about the types of node, and clarify when setting web.port enables web-API service. fixes #1444
313zooko@zooko.com**20110926203801
314 Ignore-this: ab94d470c68e720101a7ff3c207a719e
315] 
316[TAG allmydata-tahoe-1.9.0a2
317warner@lothar.com**20110925234811
318 Ignore-this: e9649c58f9c9017a7d55008938dba64f
319] 
320Patch bundle hash:
3210f84608e322f47c9de89abac48f5ab571c7817e9