Opened at 2007-12-18T23:58:37Z
Last modified at 2010-11-30T16:24:36Z
#237 closed defect
webish directory page can't display more than 192 children — at Initial Version
Reported by: | warner | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 0.8.0 (Allmydata 3.0 Beta) |
Component: | code-frontend-web | Version: | 0.7.0 |
Keywords: | twisted deferred | Cc: | |
Launchpad Bug: |
Description
While doing some load testing (which involves writing lots and lots of files into a few directories), I discovered an exception when using the webish interface to list one of these large directories. The exception came out of nevow as it attempted to render the 193rd child of the directory:
<type 'exceptions.RuntimeError'>: maximum recursion depth exceeded 8478 e3a8b071 5209 e3b1a475 16687 e50b1c9f 358 e6987f72 1306 e87980c6 2474 ea522799 10471 ec240057 11205 ecd1f02e 1306 ed43ad1c 34177 ee143769 10631 ee19da75 4997 ee63f994 2490 ef130749 17256 efbc8ce1 985 f007eea2 32158 f01c9866 14425 f0c87da8 406 f0f8adeb 6960 f1d55525 58417 f229b2f7 3696 f29996bf 17328 f391e7bd 13800 f4980b04 2411 f5066714 726 f52e4fd8 2459 f56b1a96 4507 f5cf24fc 7808 f5fb619b return FunctionSerializer(original, context, nocontext) File "/home/amduser/tahoe-loadnet/source/support/lib/python2.5/site-pa ckages/Nevow-0.9.0-py2.5.egg/nevow/flat/flatstan.py", line 234, in FunctionSeria lizer result = original(context, data) File "/home/amduser/tahoe-loadnet/source/src/allmydata/webish.py", lin e 227, in render_row ctx.fillSlots("size", target.get_size()) File "/home/amduser/tahoe-loadnet/source/src/allmydata/filenode.py", l ine 25, in get_size return IFileURI(self.uri).get_size() File "/usr/lib/python2.5/site-packages/twisted/python/components.py", line 113, in _hook return factory(ob) File "/home/amduser/tahoe-loadnet/source/src/allmydata/uri.py", line 4 28, in from_string_filenode u = from_string(s) File "/home/amduser/tahoe-loadnet/source/src/allmydata/uri.py", line 3 91, in from_string return CHKFileURI().init_from_string(s) File "/home/amduser/tahoe-loadnet/source/src/allmydata/uri.py", line 5 2, in init_from_string self.key = idlib.a2b(key_s) File "/home/amduser/tahoe-loadnet/source/src/allmydata/util/idlib.py", line 190, in a2b precondition(could_be_base32_encoded(cs), "cs is required to be poss ibly base32 encoded data.", cs=cs) exceptions.RuntimeError: maximum recursion depth exceeded
I'm not sure if there is actual recursion taking place.. it may just be a function that's returning defer.succeed(result) and this basically surprises some other piece of code that doesn't expect the Deferred to fire so quickly.
Note: See
TracTickets for help on using
tickets.