Duplicate domain creation: Integrity error is not raised as DuplicateError from central

Bug #1083593 reported by Endre Karlson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Designate
Fix Released
Medium
Kiall Mac Innes

Bug Description

2012-11-27 14:45:08 26685 DEBUG moniker.openstack.common.rpc.amqp [-] MSG_ID is a9006c8c30af4b97b3b41fb4f1c8c717 multicall /root/moniker/moniker/openstack/common/rpc/amqp.py:358
2012-11-27 14:48:19 26685 DEBUG moniker.openstack.common.rpc.amqp [-] Making asynchronous call on central ... multicall /root/moniker/moniker/openstack/common/rpc/amqp.py:355
2012-11-27 14:48:19 26685 DEBUG moniker.openstack.common.rpc.amqp [-] MSG_ID is 4f270f910441463e9b5029e5f837ad46 multicall /root/moniker/moniker/openstack/common/rpc/amqp.py:358
2012-11-27 14:52:59 26685 DEBUG moniker.openstack.common.rpc.amqp [-] Making asynchronous call on central ... multicall /root/moniker/moniker/openstack/common/rpc/amqp.py:355
2012-11-27 14:52:59 26685 DEBUG moniker.openstack.common.rpc.amqp [-] MSG_ID is c0325d3ee1274f39aa8dbc0e575d70c4 multicall /root/moniker/moniker/openstack/common/rpc/amqp.py:358
2012-11-27 14:53:10 26685 DEBUG moniker.openstack.common.rpc.amqp [-] Making asynchronous call on central ... multicall /root/moniker/moniker/openstack/common/rpc/amqp.py:355
2012-11-27 14:53:10 26685 DEBUG moniker.openstack.common.rpc.amqp [-] MSG_ID is bbde2bcb0fea4d518600453fcc815f97 multicall /root/moniker/moniker/openstack/common/rpc/amqp.py:358
2012-11-27 14:53:26 26685 DEBUG moniker.openstack.common.rpc.amqp [-] Making asynchronous call on central ... multicall /root/moniker/moniker/openstack/common/rpc/amqp.py:355
2012-11-27 14:53:26 26685 DEBUG moniker.openstack.common.rpc.amqp [-] MSG_ID is 65943442da134f34bf5d934ce8a87819 multicall /root/moniker/moniker/openstack/common/rpc/amqp.py:358
2012-11-27 14:53:26 26685 ERROR moniker.api.v1 [-] Exception on /domains [POST]
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 Traceback (most recent call last):
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 File "/root/moniker/.venv/local/lib/python2.7/site-packages/flask/app.py", line 1687, in wsgi_app
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 response = self.full_dispatch_request()
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 File "/root/moniker/.venv/local/lib/python2.7/site-packages/flask/app.py", line 1360, in full_dispatch_request
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 rv = self.handle_user_exception(e)
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 File "/root/moniker/.venv/local/lib/python2.7/site-packages/flask/app.py", line 1358, in full_dispatch_request
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 rv = self.dispatch_request()
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 File "/root/moniker/.venv/local/lib/python2.7/site-packages/flask/app.py", line 1344, in dispatch_request
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 return self.view_functions[rule.endpoint](**req.view_args)
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 File "/root/moniker/moniker/api/v1/domains.py", line 52, in create_domain
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 domain = central_api.create_domain(context, values)
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 File "/root/moniker/moniker/central/api.py", line 91, in create_domain
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 return RPC.call(context, msg)
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 File "/root/moniker/moniker/openstack/common/rpc/proxy.py", line 80, in call
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 return rpc.call(context, self._get_topic(topic), msg, timeout)
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 File "/root/moniker/moniker/openstack/common/rpc/__init__.py", line 108, in call
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 return _get_impl().call(cfg.CONF, context, topic, msg, timeout)
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 File "/root/moniker/moniker/openstack/common/rpc/impl_kombu.py", line 762, in call
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 rpc_amqp.get_connection_pool(conf, Connection))
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 File "/root/moniker/moniker/openstack/common/rpc/amqp.py", line 372, in call
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 rv = list(rv)
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 File "/root/moniker/moniker/openstack/common/rpc/amqp.py", line 340, in __iter__
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 raise result
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 RemoteError: Remote error: IntegrityError (IntegrityError) (1062, "Duplicate entry 'test.local' for key 'name'") 'INSERT INTO domains (id, created_at, updated_at, version, tenant_id, name, email, ttl, refresh, retry, expire, minimum) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)' ('5c29e7b505f14807af89e820d361390c', datetime.datetime(2012, 11, 27, 13, 53, 26, 522970), None, 1, 'b8fb8af372bd4d5a9210ab75cad1a450', 'test.local', '<email address hidden>', 3600, 3600, 3600, 3600, 3600)
2012-11-27 14:53:26 26685 TRACE moniker.api.v1 [u'Traceback (most recent call last):\n', u' File "/root/moniker/moniker/openstack/common/rpc/amqp.py", line 279, in _process_data\n rval = self.proxy.dispatch(ctxt, version, method, **args)\n', u' File "/root/moniker/moniker/openstack/common/rpc/dispatcher.py", line 145, in dispatch\n return getattr(proxyobj, method)(ctxt, **kwargs)\n', u' File "/root/moniker/moniker/central/service.py", line 188, in create_domain\n domain = self.storage_conn.create_domain(context, values)\n', u' File "/root/moniker/moniker/storage/impl_sqlalchemy/__init__.py", line 146, in create_domain\n domain.save(self.session)\n', u' File "/root/moniker/moniker/storage/impl_sqlalchemy/models.py", line 71, in save\n session.flush()\n', u' File "/root/moniker/.venv/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1718, in flush\n self._flush(objects)\n', u' File "/root/moniker/.venv/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1789, in _flush\n flush_context.execute()\n', u' File "/root/moniker/.venv/local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 331, in execute\n rec.execute(self)\n', u' File "/root/moniker/.venv/local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 475, in execute\n uow\n', u' File "/root/moniker/.venv/local/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 64, in save_obj\n table, insert)\n', u' File "/root/moniker/.venv/local/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 558, in _emit_insert_statements\n execute(statement, params)\n', u' File "/root/moniker/.venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1449, in execute\n params)\n', u' File "/root/moniker/.venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1584, in _execute_clauseelement\n compiled_sql, distilled_params\n', u' File "/root/moniker/.venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1698, in _execute_context\n context)\n', u' File "/root/moniker/.venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1691, in _execute_context\n context)\n', u' File "/root/moniker/.venv/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 331, in do_execute\n cursor.execute(statement, parameters)\n', u' File "/root/moniker/.venv/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 201, in execute\n self.errorhandler(self, exc, value)\n', u' File "/root/moniker/.venv/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler\n raise errorclass, errorvalue\n', u'IntegrityError: (IntegrityError) (1062, "Duplicate entry \'test.local\' for key \'name\'") \'INSERT INTO domains (id, created_at, updated_at, version, tenant_id, name, email, ttl, refresh, retry, expire, minimum) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)\' (\'5c29e7b505f14807af89e820d361390c\', datetime.datetime(2012, 11, 27, 13, 53, 26, 522970), None, 1, \'b8fb8af372bd4d5a9210ab75cad1a450\', \'test.local\', \'<email address hidden>', 3600, 3600, 3600, 3600, 3600)\n'].
2012-11-27 14:53:26 26685 TRACE moniker.api.v1

Changed in moniker:
importance: Undecided → Medium
status: New → Confirmed
milestone: none → grizzly-2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to moniker (master)

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

Changed in moniker:
assignee: nobody → Kiall Mac Innes (kiall)
status: Confirmed → In Progress
Kiall Mac Innes (kiall)
Changed in moniker:
milestone: grizzly-2 → grizzly-1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to moniker (master)

Reviewed: https://review.openstack.org/17497
Committed: http://github.com/stackforge/moniker/commit/58ed5199446eaa9412e5b07df8be82fe06253f85
Submitter: Jenkins
Branch: master

commit 58ed5199446eaa9412e5b07df8be82fe06253f85
Author: Kiall Mac Innes <email address hidden>
Date: Tue Dec 4 18:31:04 2012 +0000

    Correctly raise Duplicate exceptions with MySQL.

    Fixes bug #1083593.

    Change-Id: Iaa3f32d7acddc7a876dbd5b3d534490aef2d298f

Changed in moniker:
status: In Progress → Fix Committed
Kiall Mac Innes (kiall)
Changed in designate:
status: Fix Committed → Fix Released
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.