[tahoe-lafs-trac-stream] [Tahoe-LAFS] #2510: test failures with foolscap-0.9.1

Tahoe-LAFS trac at tahoe-lafs.org
Tue Sep 22 20:29:15 UTC 2015


#2510: test failures with foolscap-0.9.1
----------------------+------------------------
 Reporter:  warner    |          Owner:  warner
     Type:  defect    |         Status:  new
 Priority:  critical  |      Milestone:  1.11.0
Component:  code      |        Version:  1.10.1
 Keywords:            |  Launchpad Bug:
----------------------+------------------------
 I changed some Foolscap internals in the latest release (0.9.1), involving
 how connection hints are stored and managed, and it looks like that broke
 tahoe's `rrefutil.hosts_for_rref` and `hosts_for_furl` functions.

 * `allmydata.test.test_introducer.SystemTest.test_system_v1_server`
 * `allmydata.test.test_introducer.SystemTest.test_system_v2_server`
 * `allmydata.test.test_system.SystemTest.test_filesystem`

 {{{
 [ERROR]
 Traceback (most recent call last):
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/src/allmydata/test/test_introducer.py",
 line 738, in _check1
     text = ir.renderSynchronously().decode("utf-8")
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/support/lib/python2.7/site-
 packages/Nevow-0.11.1-py2.7.egg/nevow/rend.py", line 611, in
 renderSynchronously
     list(flat.iterflatten(doc, ctx, io.write, raiseAlways))
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/support/lib/python2.7/site-
 packages/Nevow-0.11.1-py2.7.egg/nevow/flat/ten.py", line 83, in
 iterflatten
     for item in gen:
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/support/lib/python2.7/site-
 packages/Nevow-0.11.1-py2.7.egg/nevow/flat/flatstan.py", line 103, in
 TagSerializer
     yield serialize(toBeRenderedBy, context)
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/support/lib/python2.7/site-
 packages/Nevow-0.11.1-py2.7.egg/nevow/flat/ten.py", line 70, in serialize
     return partialflatten(context, obj)
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/support/lib/python2.7/site-
 packages/Nevow-0.11.1-py2.7.egg/nevow/flat/ten.py", line 61, in
 partialflatten
     return flattener(obj, context)
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/support/lib/python2.7/site-
 packages/Nevow-0.11.1-py2.7.egg/nevow/flat/flatstan.py", line 264, in
 DirectiveSerializer
     return serialize(renderer, context)
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/support/lib/python2.7/site-
 packages/Nevow-0.11.1-py2.7.egg/nevow/flat/ten.py", line 70, in serialize
     return partialflatten(context, obj)
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/support/lib/python2.7/site-
 packages/Nevow-0.11.1-py2.7.egg/nevow/flat/ten.py", line 61, in
 partialflatten
     return flattener(obj, context)
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/support/lib/python2.7/site-
 packages/Nevow-0.11.1-py2.7.egg/nevow/flat/flatstan.py", line 247, in
 MethodSerializer
     return FunctionSerializer(original, context, nocontext)
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/support/lib/python2.7/site-
 packages/Nevow-0.11.1-py2.7.egg/nevow/flat/flatstan.py", line 236, in
 FunctionSerializer
     result = original(context, data)
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/src/allmydata/web/introweb.py", line 93,
 in render_client_summary
     for s in self.introducer_service.get_subscribers():
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/src/allmydata/introducer/server.py", line
 178, in get_subscribers
     advertised_addresses = rrefutil.hosts_for_rref(rref)
   File "/home/bb-tahoe/bb-
 tahoe/Ubuntu_trusty_14_04/build/src/allmydata/util/rrefutil.py", line 36,
 in hosts_for_rref
     assert not isinstance(hint, str), hint
 exceptions.AssertionError: localhost:43728

 allmydata.test.test_introducer.SystemTest.test_system_v2_server
 }}}

 I didn't realize tahoe was looking that closely into foolscap's
 `getLocationHints()` method. To fix this, I may need to change
 getLocationHints() to return the old-style (type,host,port) tuple, or
 change tahoe to tolerate either just-a-string or tuple.

--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2510>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list