← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1269407] Re: Instance Termination delays in updating port list

 

Hi Yair,

I looked into this and could reproduce this with your script. The reason
why this occurs is because the events to nova-api are async. When nova
delete  is done the instance isn't actually deleted till sometime after
which removes the port. This is why you are getting the error that
multiple ports exist when you go to delete the subnet. In order to do
this you'd need to loop on nova list/show on that instance till it is
gone. Then you can delete the subnet without a problem.

** Changed in: nova
       Status: New => Incomplete

** Changed in: neutron
       Status: New => Invalid

** Changed in: nova
       Status: Incomplete => Invalid

** Changed in: neutron
     Assignee: Aaron Rosen (arosen) => (unassigned)

** Changed in: nova
     Assignee: Aaron Rosen (arosen) => (unassigned)

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

Title:
  Instance Termination delays in updating port list

Status in OpenStack Neutron (virtual network service):
  Invalid
Status in OpenStack Compute (Nova):
  Invalid

Bug description:
  When deleting an instance, the port list is not updated immediately.
  As a result - deleting net/subnet fails with error:

  409-{u'NeutronError': {u'message': u'Unable to complete operation on
  subnet UUID. One or more ports have an IP allocation from this
  subnet.', u'type': u'SubnetInUse', u'detail': u''}}

  (*) Happens only on automated scripts, since manual input isn't quick
  enough to catch this.

  (**) Happens only when Floating IP is attached - error doesn't happen when Floating IP isn't used.
  my guess: Nova delays in deleting the VM while checking with neutron DB that Floating IP was deleted.

  (***) nova delete command returns BEFORE instance is deleted:
  > nova delete $instance_id ; nova show $instance_id
  will return the instance without failure

  (*****) might also affect Tempest during tearDown execution

  
  Version:
  openstack-nova-api-2014.1-0.5.b1.el6.noarch
  openstack-nova-compute-2014.1-0.5.b1.el6.noarch
  openstack-nova-scheduler-2014.1-0.5.b1.el6.noarch
  openstack-nova-console-2014.1-0.5.b1.el6.noarch
  openstack-nova-conductor-2014.1-0.5.b1.el6.noarch
  openstack-nova-cert-2014.1-0.5.b1.el6.noarch

  python-neutron-2014.1-0.1.b1.el6.noarch
  openstack-neutron-2014.1-0.1.b1.el6.noarch
  openstack-neutron-openvswitch-2014.1-0.1.b1.el6.noarch

  How to reproduce:
  **** script attached ****
  assumes:
  1. external network exists with floating ip range available ("public")
  2. image exists

  Setup:
  1 create network "private"
  2. create subnet
  3. create router:
  3.1 set router gateway to "public"
  3.2 set router interface to "private"
  4. create VM
  5. assign Floating IP to VM

  TearDown
  1. Delete / Disassociate Floating IP
  2. Delete VM
  3. detach router interface from subnet (router-interface-delete)
  4. Delete subnet/net

  Expected Result:
  subnet/net should be successfully deleted.

  Actual Results:
  "Unable to complete operation on subnet UUID. One or more ports have an IP allocation from this subnet"

  409-{u'NeutronError': {u'message': u'Unable to complete operation on
  subnet UUID. One or more ports have an IP allocation from this
  subnet.', u'type': u'SubnetInUse', u'detail': u''}}

  script log:

  line 101 - VM port still in port list even though VM was deleted
  line 105 - subnet fails to delete
  line 117 - network successfully deleted after enough time passed for port list to update

    1 + EXT_NET_NAME=public
    2 + NET_NAME=my_net
    3 + SUBNET_NAME=my_subnet
    4 + ROUTER_NAME=my_router
    5 + SERVER_NAME=my_server
    6 + IMAGE_NAME='cirros-0.3.1-x86_64-uec '
    7 + MASK=54.0.0
    8 + SERVER_IP=54.0.0.6
    9 ++ neutron net-list
   10 ++ grep public
   11 ++ awk '{print $2;}'
   12 + EXT_NET_ID=200a91cf-5376-4095-8722-2f247ddb01c9
   13 ++ nova image-list
   14 ++ grep -w ' cirros-0.3.1-x86_64-uec  '
   15 ++ awk '{print $2;}'
   16 + IMAGE_ID=1f16b297-aeaa-4fa9-9640-269695b6eb48
   17 ++ grep -w id
   18 ++ neutron net-create my_net
   19 ++ awk '{print $4;}'
   20 + NET_ID=6ec5ef65-5279-4bbd-919a-b45a27bb31cd
   21 ++ neutron subnet-create --name my_subnet 6ec5ef65-5279-4bbd-919a-b45a27bb31cd 54.0.0.0/24
   22 ++ grep -w id
   23 ++ awk '{print $4;}'
   24 + SUBNET_ID=76abfa0f-938a-4be1-abd5-804af306fa2d
   25 ++ neutron router-create my_router
   26 ++ awk '{print $4;}'
   27 ++ grep -w id
   28 + ROUTER_ID=df211133-0513-44fc-bec5-38f9bca74025
   29 + neutron router-gateway-set df211133-0513-44fc-bec5-38f9bca74025 200a91cf-5376-4095-8722-2f247ddb01c9
   30 Set gateway for router df211133-0513-44fc-bec5-38f9bca74025
   31 + neutron router-interface-add df211133-0513-44fc-bec5-38f9bca74025 76abfa0f-938a-4be1-abd5-804af306fa2d
   32 Added interface cafd4161-f840-4c87-a80b-71b0ef374b9e to router df211133-0513-44fc-bec5-38f9bca74025.
   33 + nova boot --flavor 2 --image 1f16b297-aeaa-4fa9-9640-269695b6eb48 my_server --nic net-id=6ec5ef65-5279-4bbd-919a-b45a27bb31cd,v4-fixed-ip=54.0.0.6
   34 +--------------------------------------+--------------------------------------+
   35 | Property                             | Value                                |
   36 +--------------------------------------+--------------------------------------+
   37 | OS-DCF:diskConfig                    | MANUAL                               |
   38 | OS-EXT-AZ:availability_zone          | nova                                 |
   39 | OS-EXT-STS:power_state               | 0                                    |
   40 | OS-EXT-STS:task_state                | scheduling                           |
   41 | OS-EXT-STS:vm_state                  | building                             |
   42 | OS-SRV-USG:launched_at               | None                                 |
   43 | OS-SRV-USG:terminated_at             | None                                 |
   44 | accessIPv4                           |                                      |
   45 | accessIPv6                           |                                      |
   46 | adminPass                            | 9VJ9XMrtFghW                         |
   47 | config_drive                         |                                      |
   48 | created                              | 2014-01-15T12:56:30Z                 |
   49 | flavor                               | m1.small                             |
   50 | hostId                               |                                      |
   51 | id                                   | d09bbee1-599c-4042-a409-a90e0ae80e3c |
   52 | image                                | cirros-0.3.1-x86_64-uec              |
   53 | key_name                             | None                                 |
   54 | metadata                             | {}                                   |
   55 | name                                 | my_server                            |
   56 | os-extended-volumes:volumes_attached | []                                   |
   57 | progress                             | 0                                    |
   58 | security_groups                      | [{"name": "default"}]                |
   59 | status                               | BUILD                                |
   60 | tenant_id                            | 66293febf7164c849b694a8d3f14cc1a     |
   61 | updated                              | 2014-01-15T12:56:30Z                 |
   62 | user_id                              | e895d5bf0dc64d44b707b9fbf5cbf6e0     |
   63 +--------------------------------------+--------------------------------------+
   64 ++ nova list
   65 ++ grep my_server
   66 ++ awk '{print $2;}'
   67 + SERVER_ID=d09bbee1-599c-4042-a409-a90e0ae80e3c
   68 ++ neutron port-list
   69 ++ grep 54.0.0.6
   70 ++ awk '{print $2;}'
   71 + SERVER_PORT_ID=21981e00-6fe2-4f6e-a265-d0c357a1a449
   72 ++ neutron floatingip-create 200a91cf-5376-4095-8722-2f247ddb01c9 --port_id 21981e00-6fe2-4f6e-a265-d0c357a1a449
   73 ++ grep floating_ip_address
   74 ++ awk '{print $4;}'
   75 + FLOATING_IP=172.24.4.4
   76 ++ neutron floatingip-list
   77 ++ awk '{print $2;}'
   78 ++ grep 172.24.4.4
   79 + FLOATING_IP_ID=1d77d791-9205-4ee4-8ae4-1a1dcf8dd153
   80 + neutron port-list
   81 +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
   82 | id                                   | name | mac_address       | fixed_ips                                                                       |
   83 +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
   84 | 06b3022f-5492-4baf-b7d9-43f0259337e3 |      | fa:16:3e:70:9e:bb | {"subnet_id": "76abfa0f-938a-4be1-abd5-804af306fa2d", "ip_address": "54.0.0.2"} |
   85 | 13630e5f-51c2-42b9-901a-2a208e5f986a |      | fa:16:3e:08:63:0b | {"subnet_id": "2f2bc3c9-2daa-477e-a38c-e7a02b03e06e", "ip_address": "10.0.0.2"} |
   86 | 21981e00-6fe2-4f6e-a265-d0c357a1a449 |      | fa:16:3e:38:5f:74 | {"subnet_id": "76abfa0f-938a-4be1-abd5-804af306fa2d", "ip_address": "54.0.0.6"} |
   87 | 2a0a4134-37f2-4582-86ad-de0ce04b8f7e |      | fa:16:3e:aa:0d:b1 | {"subnet_id": "2f2bc3c9-2daa-477e-a38c-e7a02b03e06e", "ip_address": "10.0.0.1"} |
   88 | cafd4161-f840-4c87-a80b-71b0ef374b9e |      | fa:16:3e:e3:75:36 | {"subnet_id": "76abfa0f-938a-4be1-abd5-804af306fa2d", "ip_address": "54.0.0.1"} |
   89 +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
   90 + neutron floatingip-delete 1d77d791-9205-4ee4-8ae4-1a1dcf8dd153
   91 Deleted floatingip: 1d77d791-9205-4ee4-8ae4-1a1dcf8dd153
   92 + nova delete d09bbee1-599c-4042-a409-a90e0ae80e3c
   93 + neutron router-interface-delete df211133-0513-44fc-bec5-38f9bca74025 76abfa0f-938a-4be1-abd5-804af306fa2d
   94 Removed interface from router df211133-0513-44fc-bec5-38f9bca74025.
   95 + neutron port-list
   96 +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
   97 | id                                   | name | mac_address       | fixed_ips                                                                       |
   98 +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
   99 | 06b3022f-5492-4baf-b7d9-43f0259337e3 |      | fa:16:3e:70:9e:bb | {"subnet_id": "76abfa0f-938a-4be1-abd5-804af306fa2d", "ip_address": "54.0.0.2"} |
  100 | 13630e5f-51c2-42b9-901a-2a208e5f986a |      | fa:16:3e:08:63:0b | {"subnet_id": "2f2bc3c9-2daa-477e-a38c-e7a02b03e06e", "ip_address": "10.0.0.2"} |
  101 | 21981e00-6fe2-4f6e-a265-d0c357a1a449 |      | fa:16:3e:38:5f:74 | {"subnet_id": "76abfa0f-938a-4be1-abd5-804af306fa2d", "ip_address": "54.0.0.6"} |
  102 | 2a0a4134-37f2-4582-86ad-de0ce04b8f7e |      | fa:16:3e:aa:0d:b1 | {"subnet_id": "2f2bc3c9-2daa-477e-a38c-e7a02b03e06e", "ip_address": "10.0.0.1"} |
  103 +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
  104 + neutron subnet-delete 76abfa0f-938a-4be1-abd5-804af306fa2d
  105 409-{u'NeutronError': {u'message': u'Unable to complete operation on subnet 76abfa0f-938a-4be1-abd5-804af306fa2d. One or more ports have an IP allocation from this subnet.', u'type': u'SubnetInUse', u'detail': u''}}
  106 + neutron port-list
  107 +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
  108 | id                                   | name | mac_address       | fixed_ips                                                                       |
  109 +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
  110 | 06b3022f-5492-4baf-b7d9-43f0259337e3 |      | fa:16:3e:70:9e:bb | {"subnet_id": "76abfa0f-938a-4be1-abd5-804af306fa2d", "ip_address": "54.0.0.2"} |
  111 | 13630e5f-51c2-42b9-901a-2a208e5f986a |      | fa:16:3e:08:63:0b | {"subnet_id": "2f2bc3c9-2daa-477e-a38c-e7a02b03e06e", "ip_address": "10.0.0.2"} |
  112 | 2a0a4134-37f2-4582-86ad-de0ce04b8f7e |      | fa:16:3e:aa:0d:b1 | {"subnet_id": "2f2bc3c9-2daa-477e-a38c-e7a02b03e06e", "ip_address": "10.0.0.1"} |
  113 +--------------------------------------+------+-------------------+---------------------------------------------------------------------------------+
  114 + neutron router-delete df211133-0513-44fc-bec5-38f9bca74025
  115 Deleted router: df211133-0513-44fc-bec5-38f9bca74025
  116 + neutron net-delete 6ec5ef65-5279-4bbd-919a-b45a27bb31cd
  117 Deleted network: 6ec5ef65-5279-4bbd-919a-b45a27bb31cd
  118 + set +x

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


References