db tests fail with sqlalchemy 0.7.4

Bug #1057145 reported by Vish Ishaya
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Medium
Vish Ishaya
Folsom
Fix Released
Medium
Chuck Short
nova (Ubuntu)
Fix Released
Undecided
Unassigned
Quantal
Fix Released
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
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/13730

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

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
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (stable/folsom)

Fix proposed to branch: stable/folsom
Review: https://review.openstack.org/14091

Mark McLoughlin (markmc)
tags: removed: folsom-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (stable/folsom)

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)
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
Revision history for this message
Clint Byrum (clint-fewbar) wrote : Please test proposed package

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
Revision history for this message
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)
Changed in nova:
milestone: grizzly-1 → 2013.1
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.