The occasional tox run unearths a failure in test_begin_install due to a "database is locked" scenario:
out: py27 runtests: commands[2] | python setup.py testr --slowest
out: running testr
out: running=${PYTHON:-python} -m subunit.run discover ./trove/tests/unittests --list
out: running=${PYTHON:-python} -m subunit.run discover ./trove/tests/unittests --load-list /tmp/tmptwyNIm
out: running=${PYTHON:-python} -m subunit.run discover ./trove/tests/unittests --load-list /tmp/tmp0U27dq
out: No handlers could be found for logger "trove.guestagent.backup.backupagent"
out: ======================================================================
out: FAIL: guestagent.test_dbaas.BaseDbStatusTest.test_begin_install
out: tags: worker-1
out: ----------------------------------------------------------------------
out: Traceback (most recent call last):
out: File "/opt/stack/trove/trove/tests/unittests/guestagent/test_dbaas.py", line 1041, in setUp
out: status=rd_instance.ServiceStatuses.NEW)
out: File "trove/db/models.py", line 42, in create
out: return instance.save()
out: File "trove/instance/models.py", line 773, in save
out: return get_db_api().save(self)
out: File "trove/db/sqlalchemy/api.py", line 54, in save
out: model = db_session.merge(model)
out: File "/opt/stack/trove/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1487, in merge
out: load=load, _recursive=_recursive)
out: File "/opt/stack/trove/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1526, in _merge
out: merged = self.query(mapper.class_).get(key[1])
out: File "/opt/stack/trove/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 775, in get
out: return self._load_on_ident(key)
out: File "/opt/stack/trove/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2514, in _load_on_ident
out: return q.one()
out: File "/opt/stack/trove/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2184, in one
out: ret = list(self)
out: File "/opt/stack/trove/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2227, in __iter__
out: return self._execute_and_instances(context)
out: File "/opt/stack/trove/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2242, in _execute_and_instances
out: result = conn.execute(querycontext.statement, self._params)
out: File "/opt/stack/trove/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1449, in execute
out: params)
out: File "/opt/stack/trove/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1584, in _execute_clauseelement
out: compiled_sql, distilled_params
out: File "/opt/stack/trove/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1698, in _execute_context
out: context)
out: File "/opt/stack/trove/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1691, in _execute_context
out: context)
out: File "/opt/stack/trove/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 331, in do_execute
out: cursor.execute(statement, parameters)
out: OperationalError: (OperationalError) database is locked u'SELECT service_statuses.id AS service_statuses_id, service_statuses.instance_id AS service_statuses_instance_id, service_statuses.status_id AS service_statuses_status_id, service_statuses.status_description AS service_statuses_status_description, service_statuses.updated_at AS service_statuses_updated_at \nFROM service_statuses \nWHERE service_statuses.id = ?' ('05f62979-06fd-4eab-829d-b4f085c22dec',)
out: No handlers could be found for logger "trove.guestagent.backup.backupagent"
out: ======================================================================
out: FAIL: process-returncode
out: tags: worker-1
out: ----------------------------------------------------------------------
out: Binary content:
out: traceback (test/plain; charset="utf8")
out: Ran 554 (+1) tests in 27.920s (-1.332s)
out: FAILED (id=1, failures=2 (+2), skips=2)
out: error: testr failed (1)
out: ERROR: InvocationError: '/opt/stack/trove/.tox/py27/bin/python setup.py testr --slowest'
this happens every so often, but is not consistently reproducible.
Fix proposed to branch: master /review. openstack. org/69155
Review: https:/