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.
