Opened at 2007-08-09T16:14:09Z
Closed at 2007-10-02T06:13:24Z
#95 closed defect (fixed)
Clicking "To view the global shared filestore, Click Here!" in client attached to Test Grid raises AssertionError
| Reported by: | arch_o_median | Owned by: | arch_o_median |
|---|---|---|---|
| Priority: | major | Milestone: | 0.6.1 |
| Component: | code-frontend-web | Version: | 0.6.0 |
| Keywords: | Cc: | ||
| Launchpad Bug: |
Description
Exception Stack Trace Follows:
<type 'exceptions.AssertionError'>: precondition: 'cs is required to be possibly base32 encoded data.' <type 'str'>, cs: '3xqllg4vvfvxh5grbvawic67va======' <type 'str'>
/usr/lib/python2.5/site-packages/twisted/internet/defer.py, line 107 in maybeDeferred
105
106
try:
107
result = f(*args, **kw)
108
except:
Locals
args (PageContext(tag=<allmydata.webish.Root object at 0x891204c>), ('vdrive', 'global'))
kw {}
f <bound method Root.locateChild of <allmydata.webish.Root object at 0x891204c>>
/usr/lib/python2.5/site-packages/allmydata/webish.py, line 863 in locateChild
861
return rend.NotFound
862
if segments[1] == "global":
863
d = vdrive.get_public_root()
864
name = "public vdrive"
Locals
vdrive <allmydata.vdrive.VirtualDrive instance at 0x891216c>
segments ('vdrive', 'global')
Globals
rend <module 'nevow.rend' from '/var/lib/python-support/python2.5/nevow/rend.pyc'>
/usr/lib/python2.5/site-packages/allmydata/vdrive.py, line 105 in get_public_root
103
if not self._global_uri:
104
return defer.fail(NoGlobalVirtualDriveError())
105
return self.get_node(self._global_uri)
106
Locals
self <allmydata.vdrive.VirtualDrive instance at 0x891216c>
Globals
defer <module 'twisted.internet.defer' from '/usr/lib/python2.5/site-packages/twisted/internet/defer.pyc'>
NoGlobalVirtualDriveError <class 'allmydata.vdrive.NoGlobalVirtualDriveError'>
/usr/lib/python2.5/site-packages/allmydata/vdrive.py, line 115 in get_node
113
114
def get_node(self, node_uri):
115
node_uri = IURI(node_uri)
116
if IDirnodeURI.providedBy(node_uri):
Locals
self <allmydata.vdrive.VirtualDrive instance at 0x891216c>
node_uri 'URI:DIR:pb://xextf3eap44o3wi27mf7ehiur6wvhzr6@207.7.153.180:56677,127.0.0.1:56677/vdrive:3xqllg4vvfvxh5grbvawic67va======'
Globals
IDirnodeURI <InterfaceClass allmydata.interfaces.IDirnodeURI>
IURI <InterfaceClass allmydata.interfaces.IURI>
/usr/lib/python2.5/site-packages/twisted/python/components.py, line 113 in _hook
111
return None
112
else:
113
return factory(ob)
114
interface.adapter_hooks.append(_hook)
Locals
factory <function from_string at 0x8596c6c>
ob 'URI:DIR:pb://xextf3eap44o3wi27mf7ehiur6wvhzr6@207.7.153.180:56677,127.0.0.1:56677/vdrive:3xqllg4vvfvxh5grbvawic67va======'
Globals
interface <module 'zope.interface.interface' from '/usr/lib/python2.5/site-packages/zope/interface/interface.pyc'>
_hook <function _hook at 0x82891ec>
/usr/lib/python2.5/site-packages/allmydata/uri.py, line 201 in from_string
199
return LiteralFileURI().init_from_string(s)
200
elif s.startswith("URI:DIR:"):
201
return DirnodeURI().init_from_string(s)
202
elif s.startswith("URI:DIR-RO:"):
Locals
s 'URI:DIR:pb://xextf3eap44o3wi27mf7ehiur6wvhzr6@207.7.153.180:56677,127.0.0.1:56677/vdrive:3xqllg4vvfvxh5grbvawic67va======'
Globals
LiteralFileURI <class allmydata.uri.LiteralFileURI at 0x859786c>
DirnodeURI <class allmydata.uri.DirnodeURI at 0x85978cc>
/usr/lib/python2.5/site-packages/allmydata/uri.py, line 134 in init_from_string
132
colon = uri.rindex(":")
133
self.furl = uri[:colon]
134
self.writekey = idlib.a2b(uri[colon+1:])
135
self._derive_values()
Locals
colon 80
uri 'pb://xextf3eap44o3wi27mf7ehiur6wvhzr6@207.7.153.180:56677,127.0.0.1:56677/vdrive:3xqllg4vvfvxh5grbvawic67va======'
self <allmydata.uri.DirnodeURI instance at 0x8c7436c>
Globals
idlib <module 'allmydata.util.idlib' from '/usr/lib/python2.5/site-packages/allmydata/util/idlib.pyc'>
/usr/lib/python2.5/site-packages/allmydata/util/idlib.py, line 190 in a2b
188
@param cs the base-32 encoded data (a string)
189
"""
190
precondition(could_be_base32_encoded(cs), "cs is required to be possibly base32 encoded data.", cs=cs)
191
Locals
cs '3xqllg4vvfvxh5grbvawic67va======'
Globals
precondition <function precondition at 0x84f58ec>
string <module 'string' from '/usr/lib/python2.5/string.pyc'>
could_be_base32_encoded <function could_be_base32_encoded at 0x8552cdc>
/usr/lib/python2.5/site-packages/allmydata/util/assertutil.py, line 59 in precondition
57
raise
58
59
raise AssertionError, "".join(msgbuf)
60
Locals
msgbuf ['precondition', ': ', "'cs is required to be possibly base32 encoded data.' <type 'str'>", ", cs: '3xqllg4vvfvxh5grbvawic67va======' <type 'str'>"]
<type 'exceptions.AssertionError'>: precondition: 'cs is required to be possibly base32 encoded data.' <type 'str'>, cs: '3xqllg4vvfvxh5grbvawic67va======' <type 'str'>
Change History (5)
comment:1 Changed at 2007-08-11T01:46:21Z by warner
comment:2 Changed at 2007-08-11T01:53:21Z by warner
- Owner changed from zooko to arch_o_median
Is it possible that you have a node that was initialized before the switch-to-zbase32 change that occurred on july-24, but is now running with new code?
The dirnode URI format changed (and testnet was flushed), so you need to at least remove the global_root.uri and my_vdrive.uri files from it. You may want to delete the whole node and create a brand new one.
If you make a new node and look at those files, check to see if the URIs look different between your old one and the new one. The old ones would have lots of trailing === marks, the new ones should have no equal marks.
If we can confirm that this is the problem, could you close this ticket?
thanks,
-Brian
comment:3 Changed at 2007-08-14T18:55:05Z by warner
- Component changed from code to code-frontend-web
comment:4 Changed at 2007-09-25T04:23:50Z by zooko
- Milestone changed from undecided to 0.6.1
- Version changed from 0.4.0 to 0.6.0
Also dbcabc114234cfe5 made it so that this kind of incompatibility will be handled nicely explicitly from now on. arch: please close this ticket if you agree that the issue is fixed.
comment:5 Changed at 2007-10-02T06:13:24Z by arch_o_median
- Resolution set to fixed
- Status changed from new to closed

eek, that's formatted pretty badly.. maybe you could add the traceback as an attachment instead?