Opened at 2009-04-09T05:13:56Z
Last modified at 2012-11-20T00:48:58Z
#679 assigned defect
/storage emitting exception - lease reporting code
Reported by: | terrell | Owned by: | davidsarah |
---|---|---|---|
Priority: | major | Milestone: | undecided |
Component: | code-frontend-web | Version: | 1.3.0 |
Keywords: | leases error crawler | Cc: | |
Launchpad Bug: |
Description
This exception appeared a few times just after a recompile and restart of the server -- running on r3833.
After a few minutes (6 or so), a simple refresh of /storage rendered correctly and this error was not seen again.
2009-04-09 04:54:07.804Z [HTTPChannel,3,127.0.0.1] Unhandled Error Traceback (most recent call last): File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/rend.py", line 568, in _renderHTTP return self.flattenFactory(doc, ctx, writer, finisher) File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/rend.py", line 527, in <lambda> flattenFactory = lambda self, *args: flat.flattenFactory(*args) File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/flat/__init__.py", line 14, in flattenFactory return deferflatten(stan, ctx, writer).addCallback(finisher) File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/flat/twist.py", line 63, in deferflatten _drive(iterable, finished) --- <exception caught here> --- File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/flat/twist.py", line 24, in _drive next = iterable.next() File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/flat/ten.py", line 83, in iterflatten for item in gen: File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/flat/flatstan.py", line 103, in TagSerializer yield serialize(toBeRenderedBy, context) File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/flat/ten.py", line 70, in serialize return partialflatten(context, obj) File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/flat/ten.py", line 61, in partialflatten return flattener(obj, context) File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/flat/flatstan.py", line 264, in DirectiveSerializer return serialize(renderer, context) File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/flat/ten.py", line 70, in serialize return partialflatten(context, obj) File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/flat/ten.py", line 61, in partialflatten return flattener(obj, context) File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/flat/flatstan.py", line 247, in MethodSerializer return FunctionSerializer(original, context, nocontext) File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/support/lib/python2.5/site-packages/Nevow-0.9.32-py2.5.egg/nevow/flat/flatstan.py", line 236, in FunctionSerializer result = original(context, data) File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/src/allmydata/web/storage.py", line 242, in render_lease_last_cycle_results self.format_recovered(last["space-recovered"], "actual") File "/Users/trel/Desktop/tahoestuff/tahoefromdarcs/src/allmydata/web/storage.py", line 159, in format_recovered (maybe(sr["%s-shares" % a]), exceptions.KeyError: 'actual-shares'
Change History (3)
comment:1 Changed at 2009-07-03T00:59:41Z by warner
- Component changed from unknown to code-frontend-web
- Owner nobody deleted
comment:2 Changed at 2010-04-14T01:52:23Z by davidsarah
- Keywords leases error heisenbug added
comment:3 Changed at 2012-11-20T00:48:03Z by davidsarah
- Keywords crawler added; heisenbug removed
- Owner set to davidsarah
- Status changed from new to assigned
Note: See
TracTickets for help on using
tickets.
I don't think this is actually a heisenbug, I think it's just that the actual-shares field isn't being initialized until the lease crawler is run. This bug might survive the transition to leasedb, since the new accounting crawler code is based quite closely on the old lease crawler code, and the status page implementation hasn't changed much either.
I'm slightly confused because I thought there already was a test that the status page renders correctly before the lease crawler is run. But if not, we should add one.