yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #88981
[Bug 1975542] Re: Open vSwitch agent - does not report to the segment plugin
Reviewed: https://review.opendev.org/c/openstack/neutron/+/843294
Committed: https://opendev.org/openstack/neutron/commit/d89d7bd5e6477a1ad24165831dbc5f1e2fc357b5
Submitter: "Zuul (22348)"
Branch: master
commit d89d7bd5e6477a1ad24165831dbc5f1e2fc357b5
Author: Rodolfo Alonso Hernandez <ralonsoh@xxxxxxxxxx>
Date: Sat May 14 16:55:33 2022 +0000
Remove session active check in "_add_segment_host_mapping_for_segment"
Method ``_add_segment_host_mapping_for_segment`` is called by the event
(resources.SEGMENT, events.PRECOMMIT_CREATE), from
``SegmentDbMixin._create_segment_db``, and is called inside a database
writer context. That means it is irrelevant to check if the session is
active (must be always).
Closes-Bug: #1975542
Change-Id: Ib19dacf886486876237ed1157fb95ae157ed430e
** 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/1975542
Title:
Open vSwitch agent - does not report to the segment plugin
Status in neutron:
Fix Released
Bug description:
The atteched devstack configuration `local.conf` can be used to
reproduce this issue.
In networking-baremetal CI we are seeing an issue where the DHCP agent
does not create a namespace for subnets on a routed provider network.
No DHCP namespace is created because this test[1] `if (any(s for s in
network.subnets if s.enable_dhcp)` returns false.
The OVS agent does have the correct configuration, with mappings to
the physical_network "mynetwork" on bridge "brbm".
$ openstack network agent show ef7ca33a-de9c-4a2b-9af5-e1c9cb029a25 -f yaml
admin_state_up: true
agent_type: Open vSwitch agent
alive: true
availability_zone: null
binary: neutron-openvswitch-agent
configuration:
arp_responder_enabled: false
baremetal_smartnic: false
bridge_mappings:
mynetwork: brbm
public: br-ex
But looking in the database, there are only `segment host mappings`
for baremetal nodes.
mysql> select * from segmenthostmappings;
+--------------------------------------+--------------------------------------+
| segment_id | host |
+--------------------------------------+--------------------------------------+
| 712e8a82-a5f9-4506-9520-fc5b4b01529e | 30e70889-d50c-42a8-8776-f5e8cdce3609 |
| 712e8a82-a5f9-4506-9520-fc5b4b01529e | a3930bb2-a742-44f8-954e-49be373477db |
| 712e8a82-a5f9-4506-9520-fc5b4b01529e | cbb3f623-f300-4dd3-ab09-c05b1e9b9a75 |
| ede8201d-0766-4a18-9df0-1b6292f99592 | 30e70889-d50c-42a8-8776-f5e8cdce3609 |
| ede8201d-0766-4a18-9df0-1b6292f99592 | a3930bb2-a742-44f8-954e-49be373477db |
| ede8201d-0766-4a18-9df0-1b6292f99592 | cbb3f623-f300-4dd3-ab09-c05b1e9b9a75 |
+--------------------------------------+--------------------------------------+
6 rows in set (0.00 sec)
If I manually stop the OVS agent service, manually delete the agent and then restart the OVS agent the agent is re-created and mappings are created.
stack@devstack:~/devstack$ sudo systemctl stop devstack@q-agt.service
stack@devstack:~/devstack$ openstack network agent delete 3921f433-b2f1-4c8f-90d2-deaad6bb5814
stack@devstack:~/devstack$ sudo systemctl start devstack@q-agt.service
mysql> select * from segmenthostmappings;
+--------------------------------------+--------------------------------------+
| segment_id | host |
+--------------------------------------+--------------------------------------+
| 712e8a82-a5f9-4506-9520-fc5b4b01529e | 30e70889-d50c-42a8-8776-f5e8cdce3609 |
| 712e8a82-a5f9-4506-9520-fc5b4b01529e | a3930bb2-a742-44f8-954e-49be373477db |
| 712e8a82-a5f9-4506-9520-fc5b4b01529e | cbb3f623-f300-4dd3-ab09-c05b1e9b9a75 |
| 712e8a82-a5f9-4506-9520-fc5b4b01529e | devstack |
| e0673f45-e9b4-4672-874f-e2eb65d74d70 | devstack |
| e2c8c728-9e55-4047-b56f-701375887da9 | devstack |
| ede8201d-0766-4a18-9df0-1b6292f99592 | 30e70889-d50c-42a8-8776-f5e8cdce3609 |
| ede8201d-0766-4a18-9df0-1b6292f99592 | a3930bb2-a742-44f8-954e-49be373477db |
| ede8201d-0766-4a18-9df0-1b6292f99592 | cbb3f623-f300-4dd3-ab09-c05b1e9b9a75 |
| ede8201d-0766-4a18-9df0-1b6292f99592 | devstack |
+--------------------------------------+--------------------------------------+
To get the DHCP namespace up and running the DHCP agent service must
be restarted as well.
stack@devstack:~/devstack$ ip netns list
qdhcp-6fd5f856-bcf6-4821-a85c-18139e934061 (id: 2)
qrouter-ea62445b-ea09-4a2d-88e9-87bede21d6c6 (id: 1)
qdhcp-4b9aae0e-482d-402f-a7c4-2acaad2f3620 (id: 0)
stack@devstack:~/devstack$ sudo systemctl restart
devstack@q-dhcp.service
stack@devstack:~/devstack$ ip netns list
qdhcp-b435b564-ce44-4fc1-bec2-2a4ccb27346f (id: 3) <-- The DHCP was created.
qdhcp-6fd5f856-bcf6-4821-a85c-18139e934061 (id: 2)
qrouter-ea62445b-ea09-4a2d-88e9-87bede21d6c6 (id: 1)
qdhcp-4b9aae0e-482d-402f-a7c4-2acaad2f3620 (id: 0)
In this CI job[2] with patch[3] we can see that the host is added with no segments:
May 19 17:47:34.266428 ubuntu-focal-ovh-bhs1-0029706921 neutron-
server[84188]: DEBUG neutron.services.segments.db [None req-
ac845447-48ed-4c73-85c9-347133259602 None None] Segments set() mapped
to the host ubuntu-focal-ovh-bhs1-0029706921 {{(pid=84188)
update_segment_host_mapping
/opt/stack/neutron/neutron/services/segments/db.py:237}}
[1] https://opendev.org/openstack/neutron/src/branch/master/neutron/agent/dhcp/agent.py#L403
[2] https://review.opendev.org/c/openstack/networking-baremetal/+/842578
[3] https://review.opendev.org/842576
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1975542/+subscriptions
References