db tests fail with sqlalchemy 0.7.4

Bug #1057145 reported by Vish Ishaya on 2012-09-26
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Medium
Vish Ishaya
Folsom
Medium
Chuck Short
nova (Ubuntu)
Undecided
Unassigned
Quantal
Undecided
Unassigned

Bug Description

A few of the database tests fail when running with sqlalchemy 0.7.4, which is an acceptable version according to pip-requires:

======================================================================
ERROR: test_instance_get_all_by_filters_metadata (nova.tests.test_db_api.DbApiTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/opt/stack/nova/nova/tests/test_db_api.py", line 93, in test_instance_get_all_by_filters_metadata
    {'metadata': {'foo': 'bar'}})
  File "/opt/stack/nova/nova/db/api.py", line 594, in instance_get_all_by_filters
    marker=marker)
  File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 129, in wrapper
    return f(*args, **kwargs)
  File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 1607, in instance_get_all_by_filters
    instances = query_prefix.all()
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 1947, in all
    return list(self)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2057, in __iter__
    return self._execute_and_instances(context)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2072, in _execute_and_instances
    result = conn.execute(querycontext.statement, self._params)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1405, in execute
    params)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1530, in _execute_clauseelement
    inline=len(distilled_params) > 1)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/expression.py", line 1722, in compile
    return self._compiler(dialect, bind=bind, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/expression.py", line 1728, in _compiler
    return dialect.statement_compiler(dialect, self, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 267, in __init__
    engine.Compiled.__init__(self, dialect, statement, **kwargs)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 699, in __init__
    self.string = self.process(self.statement)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 718, in process
    return obj._compiler_dispatch(self, **kwargs)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 59, in _compiler_dispatch
    return getter(visitor)(self, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 867, in visit_select
    t = select._whereclause._compiler_dispatch(self, **kwargs)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 59, in _compiler_dispatch
    return getter(visitor)(self, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 457, in visit_clauselist
    for c in clauselist.clauses)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 455, in <genexpr>
    s for s in
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 457, in <genexpr>
    for c in clauselist.clauses)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 59, in _compiler_dispatch
    return getter(visitor)(self, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 457, in visit_clauselist [566/1897]
    for c in clauselist.clauses)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 455, in <genexpr>
    s for s in
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 457, in <genexpr>
    for c in clauselist.clauses)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 59, in _compiler_dispatch
    return getter(visitor)(self, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 337, in visit_grouping
    return "(" + grouping.element._compiler_dispatch(self, **kwargs) + ")"
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 59, in _compiler_dispatch
    return getter(visitor)(self, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 552, in visit_unary
    s = unary.element._compiler_dispatch(self, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 59, in _compiler_dispatch
    return getter(visitor)(self, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 337, in visit_grouping
    return "(" + grouping.element._compiler_dispatch(self, **kwargs) + ")"
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 59, in _compiler_dispatch
    return getter(visitor)(self, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 867, in visit_select
    t = select._whereclause._compiler_dispatch(self, **kwargs)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 59, in _compiler_dispatch
    return getter(visitor)(self, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 457, in visit_clauselist
    for c in clauselist.clauses)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 455, in <genexpr>
    s for s in
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 457, in <genexpr>
    for c in clauselist.clauses)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/util.py", line 374, in _compiler_dispatch
    return self.__element.__class__._compiler_dispatch(self, visitor, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 59, in _compiler_dispatch
    return getter(visitor)(self, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 457, in visit_clauselist
    for c in clauselist.clauses)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 455, in <genexpr>
    s for s in
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 457, in <genexpr>
    for c in clauselist.clauses)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/util.py", line 374, in _compiler_dispatch
    return self.__element.__class__._compiler_dispatch(self, visitor, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 59, in _compiler_dispatch
    return getter(visitor)(self, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 572, in visit_binary
    **kw
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 617, in _operator_dispatch
    return fn(OPERATORS[operator])
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 571, in <lambda>
    self, **kw),
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/util.py", line 374, in _compiler_dispatch
    return self.__element.__class__._compiler_dispatch(self, visitor, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 59, in _compiler_dispatch
    return getter(visitor)(self, **kw)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 642, in visit_bindparam
    bindparam.key
CompileError: Bind parameter '%(58498704 deleted)s' conflicts with unique bind parameter of the same name

======================================================================
ERROR: Test that migration 91 works correctly.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/opt/stack/nova/nova/tests/test_migrations.py", line 447, in test_migration_91
    self.assertEqual(vol1_id, query.execute().fetchone().volume_id)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/expression.py", line 2734, in execute
    return e._execute_clauseelement(self, multiparams, params)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2304, in _execute_clauseelement
    return connection._execute_clauseelement(elem, multiparams, params)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1538, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1646, in _execute_context
    context)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1639, in _execute_context
    context)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 330, in do_execute
    cursor.execute(statement, parameters)
OperationalError: (OperationalError) no such table: iscsi_targets u'SELECT iscsi_targets.created_at, iscsi_targets.updated_at, iscsi_targets.deleted_at, iscsi_targets.deleted, iscsi_targets.id, iscsi_ta
rgets.target_num, iscsi_targets.host, iscsi_targets.volume_id \nFROM iscsi_targets \nWHERE iscsi_targets.id = ?' (7,)

======================================================================
ERROR: Walks all version scripts for each tested database, ensuring
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/opt/stack/nova/nova/tests/test_migrations.py", line 210, in test_walk_versions
    self._walk_versions(engine, self.snake_walk)
  File "/opt/stack/nova/nova/tests/test_migrations.py", line 286, in _walk_versions
    self._migrate_down(engine, version)
  File "/opt/stack/nova/nova/tests/test_migrations.py", line 294, in _migrate_down
    version)
  File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 202, in downgrade
    return _migrate(url, repository, version, upgrade=False, err=err, **opts)
  File "<string>", line 2, in _migrate
  File "/opt/stack/nova/nova/db/sqlalchemy/migration.py", line 44, in patched_with_engine
    return f(*a, **kw)
  File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 366, in _migrate
    schema.runchange(ver, change, changeset.step)
  File "/usr/lib/python2.7/dist-packages/migrate/versioning/schema.py", line 91, in runchange
    change.run(self.engine, step)
  File "/usr/lib/python2.7/dist-packages/migrate/versioning/script/sql.py", line 41, in run
    dbapi.executescript(text)
OperationalError: no such table: iscsi_targets

Changed in nova:
importance: Undecided → Medium
status: New → In Progress
assignee: nobody → Vish Ishaya (vishvananda)
tags: added: folsom-backport-potential

Reviewed: https://review.openstack.org/13730
Committed: http://github.com/openstack/nova/commit/02facfb9d482ea541eb6f180ca0e17160b9ecc6d
Submitter: Jenkins
Branch: master

commit 02facfb9d482ea541eb6f180ca0e17160b9ecc6d
Author: Vishvananda Ishaya <email address hidden>
Date: Wed Sep 26 20:45:00 2012 +0000

    Bump the version of SQLAlchemy in pip-requires

    Fixes bug 1057145

    Change-Id: I5960b28f4c4feb3f68b21ae09c6d7de0f098b8e5

Changed in nova:
status: In Progress → Fix Committed
Mark McLoughlin (markmc) on 2012-10-13
tags: removed: folsom-backport-potential

Reviewed: https://review.openstack.org/14091
Committed: http://github.com/openstack/nova/commit/e1ed06a8318081b3379f37483f9d82f988d28ead
Submitter: Jenkins
Branch: stable/folsom

commit e1ed06a8318081b3379f37483f9d82f988d28ead
Author: Vishvananda Ishaya <email address hidden>
Date: Wed Sep 26 20:45:00 2012 +0000

    Bump the version of SQLAlchemy in pip-requires

    Fixes bug 1057145

    Change-Id: I5960b28f4c4feb3f68b21ae09c6d7de0f098b8e5

Thierry Carrez (ttx) on 2012-11-21
Changed in nova:
milestone: none → grizzly-1
status: Fix Committed → Fix Released
Changed in nova (Ubuntu):
status: New → Fix Released
Changed in nova (Ubuntu Quantal):
status: New → Confirmed

Hello Vish, or anyone else affected,

Accepted nova into quantal-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/nova/2012.2.1+stable-20121212-a99a802e-0ubuntu1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in nova (Ubuntu Quantal):
status: Confirmed → Fix Committed
tags: added: verification-needed
Launchpad Janitor (janitor) wrote :
Download full text (8.3 KiB)

This bug was fixed in the package nova - 2012.2.1+stable-20121212-a99a802e-0ubuntu1

---------------
nova (2012.2.1+stable-20121212-a99a802e-0ubuntu1) quantal-proposed; urgency=low

  * Ubuntu updates:
    - debian/control: Ensure novaclient is upgraded with nova,
      require python-keystoneclient >= 1:2.9.0. (LP: #1073289)
    - d/p/avoid_setuptools_git_dependency.patch: Refresh.
  * Dropped patches, applied upstream:
    - debian/patches/CVE-2012-5625.patch: [a99a802]
  * Resynchronize with stable/folsom (b55014ca) (LP: #1085255):
    - [a99a802] create_lvm_image allocates dirty blocks (LP: #1070539)
    - [670b388] RPC exchange name defaults to 'openstack' (LP: #1083944)
    - [3ede373] disassociate_floating_ip with multi_host=True fails
      (LP: #1074437)
    - [22d7c3b] libvirt imagecache should handle shared image storage
      (LP: #1075018)
    - [e787786] Detached and deleted RBD volumes remain associated with insance
      (LP: #1083818)
    - [9265eb0] live_migration missing migrate_data parameter in Hyper-V driver
      (LP: #1066513)
    - [3d99848] use_single_default_gateway does not function correctly
      (LP: #1075859)
    - [65a2d0a] resize does not migrate DHCP host information (LP: #1065440)
    - [102c76b] Nova backup image fails (LP: #1065053)
    - [48a3521] Fix config-file overrides for nova-dhcpbridge
    - [69663ee] Cloudpipe in Folsom: no such option: cnt_vpn_clients
      (LP: #1069573)
    - [6e47cc8] DisassociateAddress can cause Internal Server Error
      (LP: #1080406)
    - [22c3d7b] API calls to dis-associate an auto-assigned floating IP should
      return proper warning (LP: #1061499)
    - [bd11d15] libvirt: if exception raised during volume_detach, volume state
      is inconsistent (LP: #1057756)
    - [dcb59c3] admin can't describe all images in ec2 api (LP: #1070138)
    - [78de622] Incorrect Exception raised during Create server when metadata
      over 255 characters (LP: #1004007)
    - [c313de4] Fixed IP isn't released before updating DHCP host file
      (LP: #1078718)
    - [f4ab42d] Enabling Return Reservation ID with XML create server request
      returns no body (LP: #1061124)
    - [3db2a38] 'BackupCreate' should accept rotation parameter greater than or
      equal to zero (LP: #1071168)
    - [f7e5dde] libvirt reboot sometimes fails to reattach volumes
      (LP: #1073720)
    - [ff776d4] libvirt: detaching volume may fail while terminating other
      instances on the same host concurrently (LP: #1060836)
    - [85a8bc2] Used instance uuid rather than id in remove-fixed-ip
    - [42a85c0] Fix error on invalid delete_on_termination value
    - [6a17579] xenapi migrations fail w/ swap (LP: #1064083)
    - [97649b8] attach-time field for volumes is not updated for detach volume
      (LP: #1056122)
    - [8f6a718] libvirt: rebuild is not using kernel and ramdisk associated with
      the new image (LP: #1060925)
    - [fbe835f] live-migration and volume host assignement (LP: #1066887)
    - [c2a9150] typo prevents volume_tmp_dir flag from working (LP: #1071536)
    - [93efa21] Instances deleted during spawn leak network allocations
      (LP: #1068716)
    - [ebabd02] After restartin...

Read more...

Changed in nova (Ubuntu Quantal):
status: Fix Committed → Fix Released
Thierry Carrez (ttx) on 2013-04-04
Changed in nova:
milestone: grizzly-1 → 2013.1
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers