#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

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.

Last edited at 2012-11-20T00:48:58Z by davidsarah (previous) (diff)
Note: See TracTickets for help on using tickets.