Public bug reported: tempest.api.network.test_ports.PortsTestJSON.test_update_port_with_second_ip faild due to a deadlock in the db.
the trace below from the q-svc screen log appears to be very similar to a similar open bug in the cinder project which suggest that this class of intermitent deadlock may exist in other cases. https://bugs.launchpad.net/cinder/+bug/1294855 full log avalable here http://logs.openstack.org/38/95138/8/check/check-tempest-dsvm-neutron-pg/99dc5cb/logs/ 2014-06-21 18:07:30.852 21519 ERROR neutron.api.v2.resource [req-ac0f177d-9b3c-4ec7-9001-1f92dfd1bf16 None] update failed 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource Traceback (most recent call last): 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/api/v2/resource.py", line 87, in resource 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource result = method(request=request, **args) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/api/v2/base.py", line 531, in update 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource obj = obj_updater(request.context, id, **kwargs) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/plugins/ml2/plugin.py", line 682, in update_port 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource port) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/db_base_plugin_v2.py", line 1497, in update_port 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource p['fixed_ips']) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/db_base_plugin_v2.py", line 650, in _update_ips_for_port 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource ips = self._allocate_fixed_ips(context, network, to_add) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/db_base_plugin_v2.py", line 612, in _allocate_fixed_ips 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource result = self._generate_ip(context, subnets) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/db_base_plugin_v2.py", line 364, in _generate_ip 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource return NeutronDbPluginV2._try_generate_ip(context, subnets) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/db_base_plugin_v2.py", line 381, in _try_generate_ip 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource range = range_qry.filter_by(subnet_id=subnet['id']).first() 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2333, in first 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource ret = list(self[0:1]) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2200, in __getitem__ 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource return list(res) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2404, in __iter__ 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource return self._execute_and_instances(context) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2419, in _execute_and_instances 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource result = conn.execute(querycontext.statement, self._params) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 720, in execute 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource return meth(self, multiparams, params) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 317, in _execute_on_connection 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource return connection._execute_clauseelement(self, multiparams, params) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 817, in _execute_clauseelement 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource compiled_sql, distilled_params 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 947, in _execute_context 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource context) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1108, in _handle_dbapi_exception 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource exc_info 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 185, in raise_from_cause 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource reraise(type(exception), exception, tb=exc_tb) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 940, in _execute_context 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource context) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 435, in do_execute 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource cursor.execute(statement, parameters) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource DBAPIError: (TransactionRollbackError) deadlock detected 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource DETAIL: Process 21690 waits for ShareLock on transaction 10397; blocked by process 21692. 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource Process 21692 waits for ShareLock on transaction 10396; blocked by process 21690. 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource HINT: See server log for query details. 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource 'SELECT ipavailabilityranges.allocation_pool_id AS ipavailabilityranges_allocation_pool_id, ipavailabilityranges.first_ip AS ipavailabilityranges_first_ip, ipavailabilityranges.last_ip AS ipavailabilityranges_last_ip \nFROM ipavailabilityranges JOIN ipallocationpools ON ipallocationpools.id = ipavailabilityranges.allocation_pool_id \nWHERE ipallocationpools.subnet_id = %(subnet_id_1)s \n LIMIT %(param_1)s FOR UPDATE' {'param_1': 1, 'subnet_id_1': u'7dd0bab8-e96c-4a23-8603-c538239d112d'} 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource 2014-06-21 18:07:30.860 21519 INFO neutron.wsgi [req-ac0f177d-9b3c-4ec7-9001-1f92dfd1bf16 None] 127.0.0.1 - - [21/Jun/2014 18:07:30] "PUT /v2.0/ports/64563057-99d6-4f5e-8829-ffcc0e70bdb6 HTTP/1.1" 500 315 1.370053 ** Affects: neutron Importance: Undecided Status: New -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1333084 Title: test_update_port_with_second_ip failed due to a server failure “Caught error: (TransactionRollbackError) deadlock detected” Status in OpenStack Neutron (virtual network service): New Bug description: tempest.api.network.test_ports.PortsTestJSON.test_update_port_with_second_ip faild due to a deadlock in the db. the trace below from the q-svc screen log appears to be very similar to a similar open bug in the cinder project which suggest that this class of intermitent deadlock may exist in other cases. https://bugs.launchpad.net/cinder/+bug/1294855 full log avalable here http://logs.openstack.org/38/95138/8/check/check-tempest-dsvm-neutron-pg/99dc5cb/logs/ 2014-06-21 18:07:30.852 21519 ERROR neutron.api.v2.resource [req-ac0f177d-9b3c-4ec7-9001-1f92dfd1bf16 None] update failed 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource Traceback (most recent call last): 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/api/v2/resource.py", line 87, in resource 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource result = method(request=request, **args) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/api/v2/base.py", line 531, in update 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource obj = obj_updater(request.context, id, **kwargs) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/plugins/ml2/plugin.py", line 682, in update_port 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource port) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/db_base_plugin_v2.py", line 1497, in update_port 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource p['fixed_ips']) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/db_base_plugin_v2.py", line 650, in _update_ips_for_port 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource ips = self._allocate_fixed_ips(context, network, to_add) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/db_base_plugin_v2.py", line 612, in _allocate_fixed_ips 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource result = self._generate_ip(context, subnets) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/db_base_plugin_v2.py", line 364, in _generate_ip 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource return NeutronDbPluginV2._try_generate_ip(context, subnets) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/opt/stack/new/neutron/neutron/db/db_base_plugin_v2.py", line 381, in _try_generate_ip 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource range = range_qry.filter_by(subnet_id=subnet['id']).first() 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2333, in first 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource ret = list(self[0:1]) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2200, in __getitem__ 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource return list(res) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2404, in __iter__ 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource return self._execute_and_instances(context) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2419, in _execute_and_instances 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource result = conn.execute(querycontext.statement, self._params) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 720, in execute 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource return meth(self, multiparams, params) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 317, in _execute_on_connection 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource return connection._execute_clauseelement(self, multiparams, params) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 817, in _execute_clauseelement 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource compiled_sql, distilled_params 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 947, in _execute_context 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource context) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1108, in _handle_dbapi_exception 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource exc_info 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 185, in raise_from_cause 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource reraise(type(exception), exception, tb=exc_tb) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 940, in _execute_context 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource context) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 435, in do_execute 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource cursor.execute(statement, parameters) 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource DBAPIError: (TransactionRollbackError) deadlock detected 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource DETAIL: Process 21690 waits for ShareLock on transaction 10397; blocked by process 21692. 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource Process 21692 waits for ShareLock on transaction 10396; blocked by process 21690. 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource HINT: See server log for query details. 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource 'SELECT ipavailabilityranges.allocation_pool_id AS ipavailabilityranges_allocation_pool_id, ipavailabilityranges.first_ip AS ipavailabilityranges_first_ip, ipavailabilityranges.last_ip AS ipavailabilityranges_last_ip \nFROM ipavailabilityranges JOIN ipallocationpools ON ipallocationpools.id = ipavailabilityranges.allocation_pool_id \nWHERE ipallocationpools.subnet_id = %(subnet_id_1)s \n LIMIT %(param_1)s FOR UPDATE' {'param_1': 1, 'subnet_id_1': u'7dd0bab8-e96c-4a23-8603-c538239d112d'} 2014-06-21 18:07:30.852 21519 TRACE neutron.api.v2.resource 2014-06-21 18:07:30.860 21519 INFO neutron.wsgi [req-ac0f177d-9b3c-4ec7-9001-1f92dfd1bf16 None] 127.0.0.1 - - [21/Jun/2014 18:07:30] "PUT /v2.0/ports/64563057-99d6-4f5e-8829-ffcc0e70bdb6 HTTP/1.1" 500 315 1.370053 To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1333084/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

