** Changed in: neutron
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1525163

Title:
  add-router-interface can not recover when failing
  create_port_post_commit

Status in neutron:
  Fix Released

Bug description:
  When the following situation, a port created that no one can delete
  it:

    1. Configure ML2 plugin.
    2. Execute router-interface-add with subnet_id and failed in 
create_port_post_commit

    After that, undeletable port is created.
    Even if the admin tries to delete the port, he cannot delete it.

      case1: delete-port with port_id
        => Port {port_id} cannot be deleted directly via the port API: has 
device owner network:router_interface.

      case2: router-interface-delete with subnet_id or port_id
        => Router {router_id} has no interface on subnet {subnet_id}
        => Router {router_id} does not have an interface with id {port_id}

  [How to fix]
    create_port_post_commit has a recovery process.  When failed, then calls
    delete_port.  However, in this case, 'device_owner' and 'device_id' have 
already
    registered at port's DB.  Therefore, delete_port fails due to device_owner 
check.
    
    Hence, I'll add 'l3_port_check=False' into delete_port's argument.

  [Environment]
    trunk(devstack all-in-one with ML2 plugin(openvswitch))

  [How to reproduce]
  * You have to arrange create_port_post_commit shuld be failed.

  source devstack/openrc admin admin
  export TOKEN=`openstack token issue | grep ' id ' | get_field 2`

  curl -s -X GET -H "x-auth-token:$TOKEN" 192.168.122.253:9696/v2.0/ports | jq 
"."
  {
    "ports": []
  }

  curl -i -X PUT -d
  '{"subnet_id":"214ebeb5-2d08-4ae5-9d60-3c7a76d56746"}'  -H "x-auth-
  token:$TOKEN"
  
192.168.122.253:9696/v2.0/routers/7d1561d1-71f9-4355-9248-5ac313de8ee3/add_router_interface

  HTTP/1.1 409 Conflict
  Content-Type: application/json; charset=UTF-8
  Content-Length: 204
  X-Openstack-Request-Id: req-ec3bad1f-84a2-4865-9cac-e63723c0a3bb
  Date: Fri, 11 Dec 2015 10:11:11 GMT

  {"NeutronError": {"message": "Port 570a4166-d463-4ee6-894b-
  f8aab6cc63b2 cannot be deleted directly via the port API: has device
  owner network:router_interface.", "type": "ServicePortInUse",
  "detail": ""}}

  $ curl -s -X GET -H "x-auth-token:$TOKEN" 
192.168.122.253:9696/v2.0/ports/570a4166-d463-4ee6-894b-f8aab6cc63b2 | jq "."
  {
    "port": {
      "mac_address": "fa:16:3e:c3:1c:8d",
      "tenant_id": "4c0b8881d3e24a1cb1afe9ea6b07d946",
      "binding:vif_type": "unbound",
      "binding:vnic_type": "normal",
      "binding:vif_details": {},
      "binding:profile": {},
      "port_security_enabled": false,
      "device_owner": "network:router_interface",
      "dns_assignment": [
        {
          "fqdn": "host-172-16-1-1.openstacklocal.",
          "ip_address": "172.16.1.1",
          "hostname": "host-172-16-1-1"
        }
      ],
      "extra_dhcp_opts": [],
      "allowed_address_pairs": [],
      "binding:host_id": "",
      "status": "DOWN",
      "fixed_ips": [
        {
          "ip_address": "172.16.1.1",
          "subnet_id": "214ebeb5-2d08-4ae5-9d60-3c7a76d56746"
        }
      ],
      "id": "570a4166-d463-4ee6-894b-f8aab6cc63b2",
      "security_groups": [],
      "device_id": "7d1561d1-71f9-4355-9248-5ac313de8ee3",
      "name": "",
      "admin_state_up": true,
      "network_id": "11515598-c20e-4e8a-94d0-1fef56f4607d",
      "dns_name": ""
    }
  }

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1525163/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to