exception in port delete

Bug #1571541 reported by Yuli
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
DragonFlow
Fix Released
High
duankebo

Bug Description

I stoped df-l3-agent, df-controller and q-svc and started them again

I got the following exception. I am not able to ping from the VM to default GW any more !

Exception in log:
2016-04-18 11:25:06.767 DEBUG dragonflow.db.api_nb [-] Event update: Action:delete, Table:ovsinterface, Key:ee4c5ba5-4a2d-44d0-8080-34d7695dd750 Value:uuid:ee4c5ba5-4a2d-44d0-8080-34d7695dd750, ofport:3, name:qr-a71e2af6-66, admin_state:down, type:vm, iface_id:a71e2af6-663c-4533-bcba-0dffa30dea62, peer:, attached_mac:fa:16:3e:e7:2c:d4, remote_ip:, tunnel_type: Topic:None from (pid=2144) _read_db_changes_from_queue /opt/stack/dragonflow/dragonflow/db/api_nb.py:160
2016-04-18 11:25:06.767 INFO dragonflow.controller.topology [-] The logical port({u'parent_name': None, u'macs': [u'fa:16:3e:e7:2c:d4'], u'name': u'a71e2af6-663c-4533-bcba-0dffa30dea62', u'chassis': u'ubuntu', u'lswitch': u'009ccb15-168d-437a-afbe-2b3f301036c8', u'enabled': True, u'topic': u'b7f25c3da14b42d3891ffe2fce44ac5c', u'ips': [u'fdd9:ac58:90cc::1'], u'device_owner': u'network:router_interface', u'port_security': [u'fa:16:3e:e7:2c:d4'], u'tunnel_key': 5, u'external_ids': {u'neutron:port_name': u''}, u'tag': None, u'security_groups': None}{'is_local': True, 'local_network_id': 1}) is offline
2016-04-18 11:25:06.767 INFO dragonflow.controller.df_local_controller [-] Removing local logical port = {u'parent_name': None, u'macs': [u'fa:16:3e:e7:2c:d4'], u'name': u'a71e2af6-663c-4533-bcba-0dffa30dea62', u'chassis': u'ubuntu', u'lswitch': u'009ccb15-168d-437a-afbe-2b3f301036c8', u'enabled': True, u'topic': u'b7f25c3da14b42d3891ffe2fce44ac5c', u'ips': [u'fdd9:ac58:90cc::1'], u'device_owner': u'network:router_interface', u'port_security': [u'fa:16:3e:e7:2c:d4'], u'tunnel_key': 5, u'external_ids': {u'neutron:port_name': u''}, u'tag': None, u'security_groups': None}{'is_local': True, 'local_network_id': 1}
2016-04-18 11:25:06.768 ERROR dragonflow.controller.topology [-] Failed to process logical port offline event a71e2af6-663c-4533-bcba-0dffa30dea62
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology Traceback (most recent call last):
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/opt/stack/dragonflow/dragonflow/controller/topology.py", line 176, in _vm_port_deleted
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology self.controller.logical_port_deleted(lport_id)
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/opt/stack/dragonflow/dragonflow/controller/df_local_controller.py", line 238, in logical_port_deleted
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology self.open_flow_app.notify_remove_local_port(lport)
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/opt/stack/dragonflow/dragonflow/controller/ryu_base_app.py", line 89, in notify_remove_local_port
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology self.dispatcher.dispatch('remove_local_port', lport=lport)
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/opt/stack/dragonflow/dragonflow/controller/dispatcher.py", line 43, in dispatch
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology handler(*args, **kwargs)
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/opt/stack/dragonflow/dragonflow/controller/l2_app.py", line 123, in remove_local_port
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology match=match)
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/opt/stack/dragonflow/dragonflow/controller/df_base_app.py", line 85, in mod_flow
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology datapath.send_msg(message)
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/usr/local/lib/python2.7/dist-packages/ryu/controller/controller.py", line 289, in send_msg
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology msg.serialize()
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_parser.py", line 211, in serialize
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology self._serialize_body()
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_v1_3_parser.py", line 2655, in _serialize_body
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology match_len = self.match.serialize(self.buf, offset)
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_v1_3_parser.py", line 999, in serialize
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology return self.serialize_old(buf, offset)
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_v1_3_parser.py", line 1242, in serialize_old
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology f.serialize(buf, field_offset)
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_v1_3_parser.py", line 1702, in serialize
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology self.put(buf, offset, self.value)
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_v1_3_parser.py", line 1719, in put
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology self._put(buf, offset + self.length, value)
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_v1_3_parser.py", line 1709, in _put
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology msg_pack_into(self.pack_str, buf, offset, value)
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology File "/usr/local/lib/python2.7/dist-packages/ryu/lib/pack_utils.py", line 25, in msg_pack_into
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology buf += struct.pack(fmt, *args)
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology error: cannot convert argument to integer
2016-04-18 11:25:06.768 TRACE dragonflow.controller.topology

Revision history for this message
Yuli (stremovsky) wrote :

Before I had a namespace:
$ ip netns list
qrouter-8cc55df9-83a1-4809-aef7-459ff49bc11e

Now running this command returns nothing !

Changed in dragonflow:
importance: Undecided → High
duankebo (duankebo)
Changed in dragonflow:
assignee: nobody → Duan Kebo (duankebo)
Revision history for this message
Yuli (stremovsky) wrote :

Partial problem fix with the VM ping:

I need to remove router interface and create it again.

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

Reviewed: https://review.openstack.org/307184
Committed: https://git.openstack.org/cgit/openstack/dragonflow/commit/?id=864e659edf90cec91f02e39111e329d9c711d752
Submitter: Jenkins
Branch: master

commit 864e659edf90cec91f02e39111e329d9c711d752
Author: Kebo Duan <email address hidden>
Date: Mon Apr 18 21:25:07 2016 +0800

    When deleting lport, call app's handler only when ofport is valid

    Closes-Bug: #1571541

    Change-Id: I1318ead9bb6c3af88b32dc221bcd570b98f18582

Changed in dragonflow:
status: New → 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.