← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1842937] [NEW] Some ports assigned to routers don't have the correspondent routerport register

 

Public bug reported:

When running a few subnet detaching from router and deletion, some
subnets are not possible to be deleted with this error:

$ openstack subnet delete e81929f6-25ea-45c2-89b5-ff94afd7136a                                                                                        
Failed to delete subnet with name or ID 'e81929f6-25ea-45c2-89b5-ff94afd7136a': ConflictException: 409: Client Error for url: http://10.0.0.104:9696/v2.0/subnets/e81929f6-25ea-45c2-89b5-ff94afd7136a, {"NeutronError": {"message": "Unable to complete operation on subnet e81929f6-25ea-45c2-89b5-ff94afd7136a: One or more ports have an IP allocation from this subnet.", "type": "SubnetInUse", "detail": ""}}
1 of 1 subnets failed to delete.


After checking the ports in that subnet, only the router_interface port is left behing (but in DOWN status):
$ openstack subnet show e81929f6-25ea-45c2-89b5-ff94afd7136a
+-------------------+--------------------------------------+
| Field             | Value                                |
+-------------------+--------------------------------------+
| allocation_pools  | 10.128.8.2-10.128.8.254              |
| cidr              | 10.128.8.0/24                        |
| created_at        | 2019-08-29T17:09:03Z                 |
| description       |                                      |
| dns_nameservers   |                                      |
| enable_dhcp       | False                                |
| gateway_ip        | 10.128.8.1                           |
| host_routes       |                                      |
| id                | e81929f6-25ea-45c2-89b5-ff94afd7136a |
| ip_version        | 4                                    |
| ipv6_address_mode | None                                 |
| ipv6_ra_mode      | None                                 |
| name              | ns/openshift-kube-scheduler-subnet   |
| network_id        | af217883-9f09-44ab-9cd4-cd99f829f412 |
| project_id        | dcb34bf98dea46928294ff6762d9c167     |
| revision_number   | 1                                    |
| segment_id        | None                                 |
| service_types     |                                      |
| subnetpool_id     | c87c9254-7c81-43e2-ac1f-af92b35b11a4 |
| tags              | openshiftClusterID=ostest-mkp6s      |
| updated_at        | 2019-08-29T17:09:22Z                 |
+-------------------+--------------------------------------+

$ openstack port list | grep 10.128.8
| 15c52021-372c-4217-8232-e5be7ed25828 |                                               | fa:16:3e:8a:73:12 | ip_address='10.128.8.1', subnet_id='e81929f6-25ea-45c2-89b5-ff94afd7136a'     | DOWN |


Trying to detach that subnet from router does not return any error, but if run with '-vvv' the next appears:
$  openstack -vvv router remove subnet 33114251-4771-490a-bd7b-10a51e017719 e81929f6-25ea-45c2-89b5-ff94afd7136a 2>&1 | grep "has no interface"       
RESP BODY: {"NeutronError": {"message": "Router 33114251-4771-490a-bd7b-10a51e017719 has no interface on subnet e81929f6-25ea-45c2-89b5-ff94afd7136a", "type": "RouterInterfaceNotFoundForSubnet", "detail": ""}}

And checking the database it is true that it is NOT there:
MariaDB [ovs_neutron]> select * from routerports;
+--------------------------------------+--------------------------------------+--------------------------+
| router_id                            | port_id                              | port_type                |
+--------------------------------------+--------------------------------------+--------------------------+
| 33114251-4771-490a-bd7b-10a51e017719 | 65de9a4b-1630-4597-a347-037e094c79d5 | network:router_interface |
| 33114251-4771-490a-bd7b-10a51e017719 | e769fb4f-cf39-4199-b354-df91912374de | network:router_interface |
+--------------------------------------+--------------------------------------+--------------------------+

However, by checking the router we get it is there:
$ openstack router show 33114251-4771-490a-bd7b-10a51e017719 -c interfaces_info -f value | jq '.' | grep -C 3 10.128.8
[
  {
    "port_id": "15c52021-372c-4217-8232-e5be7ed25828",
    "ip_address": "10.128.8.1",
    "subnet_id": "e81929f6-25ea-45c2-89b5-ff94afd7136a"
  },
  {

** Affects: neutron
     Importance: Undecided
     Assignee: Rodolfo Alonso (rodolfo-alonso-hernandez)
         Status: New

** Changed in: neutron
     Assignee: (unassigned) => Rodolfo Alonso (rodolfo-alonso-hernandez)

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

Title:
  Some ports assigned to routers don't have the correspondent routerport
  register

Status in neutron:
  New

Bug description:
  When running a few subnet detaching from router and deletion, some
  subnets are not possible to be deleted with this error:

  $ openstack subnet delete e81929f6-25ea-45c2-89b5-ff94afd7136a                                                                                        
  Failed to delete subnet with name or ID 'e81929f6-25ea-45c2-89b5-ff94afd7136a': ConflictException: 409: Client Error for url: http://10.0.0.104:9696/v2.0/subnets/e81929f6-25ea-45c2-89b5-ff94afd7136a, {"NeutronError": {"message": "Unable to complete operation on subnet e81929f6-25ea-45c2-89b5-ff94afd7136a: One or more ports have an IP allocation from this subnet.", "type": "SubnetInUse", "detail": ""}}
  1 of 1 subnets failed to delete.

  
  After checking the ports in that subnet, only the router_interface port is left behing (but in DOWN status):
  $ openstack subnet show e81929f6-25ea-45c2-89b5-ff94afd7136a
  +-------------------+--------------------------------------+
  | Field             | Value                                |
  +-------------------+--------------------------------------+
  | allocation_pools  | 10.128.8.2-10.128.8.254              |
  | cidr              | 10.128.8.0/24                        |
  | created_at        | 2019-08-29T17:09:03Z                 |
  | description       |                                      |
  | dns_nameservers   |                                      |
  | enable_dhcp       | False                                |
  | gateway_ip        | 10.128.8.1                           |
  | host_routes       |                                      |
  | id                | e81929f6-25ea-45c2-89b5-ff94afd7136a |
  | ip_version        | 4                                    |
  | ipv6_address_mode | None                                 |
  | ipv6_ra_mode      | None                                 |
  | name              | ns/openshift-kube-scheduler-subnet   |
  | network_id        | af217883-9f09-44ab-9cd4-cd99f829f412 |
  | project_id        | dcb34bf98dea46928294ff6762d9c167     |
  | revision_number   | 1                                    |
  | segment_id        | None                                 |
  | service_types     |                                      |
  | subnetpool_id     | c87c9254-7c81-43e2-ac1f-af92b35b11a4 |
  | tags              | openshiftClusterID=ostest-mkp6s      |
  | updated_at        | 2019-08-29T17:09:22Z                 |
  +-------------------+--------------------------------------+

  $ openstack port list | grep 10.128.8
  | 15c52021-372c-4217-8232-e5be7ed25828 |                                               | fa:16:3e:8a:73:12 | ip_address='10.128.8.1', subnet_id='e81929f6-25ea-45c2-89b5-ff94afd7136a'     | DOWN |

  
  Trying to detach that subnet from router does not return any error, but if run with '-vvv' the next appears:
  $  openstack -vvv router remove subnet 33114251-4771-490a-bd7b-10a51e017719 e81929f6-25ea-45c2-89b5-ff94afd7136a 2>&1 | grep "has no interface"       
  RESP BODY: {"NeutronError": {"message": "Router 33114251-4771-490a-bd7b-10a51e017719 has no interface on subnet e81929f6-25ea-45c2-89b5-ff94afd7136a", "type": "RouterInterfaceNotFoundForSubnet", "detail": ""}}

  And checking the database it is true that it is NOT there:
  MariaDB [ovs_neutron]> select * from routerports;
  +--------------------------------------+--------------------------------------+--------------------------+
  | router_id                            | port_id                              | port_type                |
  +--------------------------------------+--------------------------------------+--------------------------+
  | 33114251-4771-490a-bd7b-10a51e017719 | 65de9a4b-1630-4597-a347-037e094c79d5 | network:router_interface |
  | 33114251-4771-490a-bd7b-10a51e017719 | e769fb4f-cf39-4199-b354-df91912374de | network:router_interface |
  +--------------------------------------+--------------------------------------+--------------------------+

  However, by checking the router we get it is there:
  $ openstack router show 33114251-4771-490a-bd7b-10a51e017719 -c interfaces_info -f value | jq '.' | grep -C 3 10.128.8
  [
    {
      "port_id": "15c52021-372c-4217-8232-e5be7ed25828",
      "ip_address": "10.128.8.1",
      "subnet_id": "e81929f6-25ea-45c2-89b5-ff94afd7136a"
    },
    {

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


Follow ups