Ipset Race Condition

Bug #1596682 reported by Rene Soto
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mirantis OpenStack
Status tracked in 10.0.x
10.0.x
Invalid
High
Unassigned
6.1.x
Fix Released
High
Alexey Stupnikov
7.0.x
Fix Released
High
Alexey Stupnikov
8.0.x
Invalid
High
Unassigned
9.x
Invalid
High
Unassigned

Bug Description

Detailed bug description:
It was determined that the fix associated with the following upstream Neutron bug (with release fixed in Juno and Kilo) is not present in MOS 6.1 and MOS 7.0:
https://bugs.launchpad.net/neutron/+bug/1491131

Steps to reproduce:
According to the upstream Neutron LP bug, this is difficult to reproduce, but this is sometimes reproduced by creating a security group rule that has a rule which is a source group back to itself, then deleting multiple instances that with that source group.

Expected results:
-to catch when ipset tries to remove an ipset that has already been removed

Actual result:
-OVS agent churns forever trying to delete an ipset that doesn't exist
-Iptables attempts to apply rules for an ipset that was not added
-Ipset churns trying to remove ips

Reproducibility: Yes
Workaround: Restart neutron OVS agent on compute node

Impact:
Newly scheduled instances not obtaining IPs

Description of the environment:
- Operation system: CentOS 6.5
- Versions of components: MOS 6.1, 7.0
- Reference architecture: -
- Network model: Neutron + OVS (with GRE)
- Related projects installed: N/A
Additional information: N/A

Revision history for this message
Dina Belova (dbelova) wrote :

Marking as confirmed and moving to 7.0 and 6.1 updates. MOS-maintenance team, please take a look on the u[stream fix and if it can be applied to earlier Neutron versions.

Changed in mos:
milestone: none → 7.0-updates
assignee: nobody → MOS Maintenance (mos-maintenance)
importance: Undecided → High
status: New → Confirmed
Changed in mos:
assignee: MOS Maintenance (mos-maintenance) → Alexey Stupnikov (astupnikov)
Revision history for this message
Alexey Stupnikov (astupnikov) wrote :

Steps to reproduce from upstream bug:
  - create a security group that has a rule which is a source group back to itself (default group has such kind of rules);
  - launch and delete multiple instances with that source group.

Revision history for this message
Alexey Stupnikov (astupnikov) wrote :

I have used attached script to reproduce this bug, but has no success.

Revision history for this message
Fuel Devops McRobotson (fuel-devops-robot) wrote : Fix proposed to openstack/neutron (openstack-ci/fuel-7.0/2015.1.0)

Fix proposed to branch: openstack-ci/fuel-7.0/2015.1.0
Change author: shihanzhang <email address hidden>
Review: https://review.fuel-infra.org/22991

Revision history for this message
Fuel Devops McRobotson (fuel-devops-robot) wrote : Fix proposed to openstack/neutron (openstack-ci/fuel-6.1/2014.2)

Fix proposed to branch: openstack-ci/fuel-6.1/2014.2
Change author: shihanzhang <email address hidden>
Review: https://review.fuel-infra.org/22995

Revision history for this message
Fuel Devops McRobotson (fuel-devops-robot) wrote :

Fix proposed to branch: openstack-ci/fuel-6.1/2014.2
Change author: shihanzhang <email address hidden>
Review: https://review.fuel-infra.org/22996

Revision history for this message
Alexey Stupnikov (astupnikov) wrote :

According to our police, we have to ask neutron team to confirm acceptance of proposed patches to stable branches.

Revision history for this message
Fuel Devops McRobotson (fuel-devops-robot) wrote : Change abandoned on openstack/neutron (openstack-ci/fuel-6.1/2014.2)

Change abandoned by Alexey Stupnikov <email address hidden> on branch: openstack-ci/fuel-6.1/2014.2
Review: https://review.fuel-infra.org/22995
Reason: Can't reproduce on MOS6.1

Revision history for this message
Fuel Devops McRobotson (fuel-devops-robot) wrote : Fix merged to openstack/neutron (openstack-ci/fuel-7.0/2015.1.0)

Reviewed: https://review.fuel-infra.org/22991
Submitter: Vitaly Sedelnik <email address hidden>
Branch: openstack-ci/fuel-7.0/2015.1.0

Commit: fe4733bdad23502b35a3b7bcaa2ddad64689662a
Author: shihanzhang <email address hidden>
Date: Wed Jul 6 13:07:33 2016

Fix ipset can't be destroyed when last rule is deleted

when it deletes a security group all rules, it should
include this sg information in RPC method
'security_group_info_for_devices', otherwise the ports
in this sg can't corrcectly update their iptables and
ipset sets.

Change-Id: Ibb071ce84590bd46cda2c1e010a566e75e22b4d2
Closes-bug: #1596682
(cherry picked from commit 764f018f50ac7cd42c29efeabaccbb5aec21f6f4)

Revision history for this message
Fuel Devops McRobotson (fuel-devops-robot) wrote : Fix merged to openstack/neutron (openstack-ci/fuel-6.1/2014.2)

Reviewed: https://review.fuel-infra.org/22996
Submitter: Vitaly Sedelnik <email address hidden>
Branch: openstack-ci/fuel-6.1/2014.2

Commit: 8bbad206564db4555a8419fec149b5a7a06d1897
Author: shihanzhang <email address hidden>
Date: Thu Jul 7 16:29:33 2016

Fix ipset can't be destroyed when last rule is deleted

when it deletes a security group all rules, it should
include this sg information in RPC method
'security_group_info_for_devices', otherwise the ports
in this sg can't corrcectly update their iptables and
ipset sets.

Change-Id: Ibb071ce84590bd46cda2c1e010a566e75e22b4d2
Closes-bug: #1596682
(cherry picked from commit 764f018f50ac7cd42c29efeabaccbb5aec21f6f4)

tags: added: on-verification
Revision history for this message
Alexey Stupnikov (astupnikov) wrote :

We have merged the patches since they were merged to upstream and our cores confirmed their importance for MOS product.

Revision history for this message
Alexey Stupnikov (astupnikov) wrote :

There is no need to verify those fixes, so they can be moved to Fix Released state automatically.

tags: removed: on-verification
Revision history for this message
TatyanaGladysheva (tgladysheva) wrote :

Fix is available in 7.0 MU5 updates. Move to Fix Released.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.