yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #65101
[Bug 1698596] [NEW] Segments plugin with ML2 core plugin not storing in the DB the segmentation_id attribute when creating a segment
Public bug reported:
With ML2 as the core plugin, the segmentation_id of a newly created
segment is assigned by a type manager that is executed by a callback
subscribed to this PRECOMMIT_CREATE notification:
https://github.com/openstack/neutron/blob/master/neutron/services/segments/db.py#L114.
Since the new_segment.create() OVO call is one line above the
notification, the segmentation_id attribute doesn't get stored in the
DB.
This can have various undesired results. As an example, with segment
type VLAN and under Python 2.7, such a segment might never be released
when not used anymore. This is because the VLAN type code will determine
here
https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/type_vlan.py#L221
that the is outside the configured tenant vlan ranges and the
corresponding DB row will never be updated as not allocated. This same
example under Python 3.5 generates the following exception in the
Neutron server: http://paste.openstack.org/show/612964/
** Affects: neutron
Importance: High
Assignee: Miguel Lavalle (minsel)
Status: New
** Changed in: neutron
Assignee: (unassigned) => Miguel Lavalle (minsel)
** Changed in: neutron
Importance: Undecided => High
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1698596
Title:
Segments plugin with ML2 core plugin not storing in the DB the
segmentation_id attribute when creating a segment
Status in neutron:
New
Bug description:
With ML2 as the core plugin, the segmentation_id of a newly created
segment is assigned by a type manager that is executed by a callback
subscribed to this PRECOMMIT_CREATE notification:
https://github.com/openstack/neutron/blob/master/neutron/services/segments/db.py#L114.
Since the new_segment.create() OVO call is one line above the
notification, the segmentation_id attribute doesn't get stored in the
DB.
This can have various undesired results. As an example, with segment
type VLAN and under Python 2.7, such a segment might never be released
when not used anymore. This is because the VLAN type code will
determine here
https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/type_vlan.py#L221
that the is outside the configured tenant vlan ranges and the
corresponding DB row will never be updated as not allocated. This same
example under Python 3.5 generates the following exception in the
Neutron server: http://paste.openstack.org/show/612964/
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1698596/+subscriptions
Follow ups