[Maas-devel] Spurious test failure

Jeroen Vermeulen jeroen.vermeulen at canonical.com
Tue May 20 08:19:56 UTC 2014


On 2014-05-20 04:14, Julian Edwards wrote:
> Anyone else seen this?
>
> ======================================================================
> FAIL:
> maasserver.rpc.tests.test_regionservice.TestRegionAdvertisingService.test_prepare_holds_startup_lock
> ----------------------------------------------------------------------
> _StringException: Traceback (most recent call last):
>    File
> "/tmp/tarmac/branch.ymB3aW/src/maasserver/rpc/tests/test_regionservice.py",
> line 667, in test_prepare_holds_startup_lock
>      self.assertFalse(locks.eventloop.is_locked())
>    File "/usr/lib/python2.7/unittest/case.py", line 418, in assertFalse
>      raise self.failureException(msg)
> AssertionError: True is not false
>
> This happened on the lander just now.  Retrying the branch made it land OK.

The problem is in line 666: prepare() is called, but doesn't seem to 
complete before returning.  So it must still be in the event loop, right?

This is total guesswork, but could the problem be that the prepare() 
method has a decorator to make it synchronous, _followed by_ decorators 
that make it wait for locks?  Given how decorators wrap functions, 
wouldn't that mean something like “this method shouldn't leave anything 
on the event loop, but before you even go into it, leave it on the event 
loop until these locks are available”?

Of course that raises the question why the locks might not be available, 
but perhaps that's just another test running asynchronously without us 
realising it.


Jeroen




More information about the Maas-devel mailing list