Database locks in benchmark tests on quelea docker runner
Multiple benchmark builds succeeded on beluga, I switched back to quelea and on the first run we got this error again:
from https://0xacab.org/leap/soledad/builds/7958:
_________________________ test_async_create_1000_10k __________________________
pyfuncitem = <Function 'test_async_create_1000_10k'>
def pytest_pyfunc_call(pyfuncitem):
if gr_twisted.dead:
raise RuntimeError("twisted reactor has stopped")
d = defer.Deferred()
reactor.callLater(0.0, lambda: defer.maybeDeferred(_pytest_pyfunc_call, pyfuncitem).chainDeferred(d))
> blockon(d)
.tox/benchmark/local/lib/python2.7/site-packages/pytest_twisted/plugin.py:75:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
d = <Deferred at 0x7f03602dc200 current result: <twisted.python.failure.Failure twisted.internet.defer.FirstError: FirstEr...on/context.py:85:callWithContext
/builds/leap/soledad/client/src/leap/soledad/client/adbapi.py:282:_runInteraction
]]>>
def blockon(d):
current = greenlet.getcurrent()
assert current is not gr_twisted, "blockon cannot be called from the twisted greenlet"
result = []
def cb(r):
result.append(r)
if greenlet.getcurrent() is not current:
current.switch(result)
d.addCallbacks(cb, cb)
if not result:
_result = gr_twisted.switch()
assert _result is result, "illegal switch in blockon"
if isinstance(result[0], failure.Failure):
> result[0].raiseException()
E FirstError: FirstError[#158, [Failure instance: Traceback: <class 'pysqlcipher.dbapi2.OperationalError'>: (OperationalError('database is locked',), <traceback object at 0x7f03476b0758>)
E /usr/lib/python2.7/threading.py:810:__bootstrap_inner
E /usr/lib/python2.7/threading.py:763:run
E /builds/leap/soledad/testing/.tox/benchmark/local/lib/python2.7/site-packages/twisted/_threads/_threadworker.py:46:work
E /builds/leap/soledad/testing/.tox/benchmark/local/lib/python2.7/site-packages/twisted/_threads/_team.py:190:doWork
E --- <exception caught here> ---
E /builds/leap/soledad/testing/.tox/benchmark/local/lib/python2.7/site-packages/twisted/python/threadpool.py:250:inContext
E /builds/leap/soledad/testing/.tox/benchmark/local/lib/python2.7/site-packages/twisted/python/threadpool.py:266:<lambda>
E /builds/leap/soledad/testing/.tox/benchmark/local/lib/python2.7/site-packages/twisted/python/context.py:122:callWithContext
E /builds/leap/soledad/testing/.tox/benchmark/local/lib/python2.7/site-packages/twisted/python/context.py:85:callWithContext
E /builds/leap/soledad/client/src/leap/soledad/client/adbapi.py:282:_runInteraction
E ]]
.tox/benchmark/local/lib/python2.7/site-packages/pytest_twisted/plugin.py:25: FirstError
Talking to drebs we suspect that quelea, which is an old and possibly slow machine is the culprit because IO/CPU is slower than on beluga.