-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix ovs connectivity issues after unclean reboot #27
Conversation
Open vSwitch by default sets the datapath-id based on the MAC address of the bridges. If the underlying interfaces share the same MAC address (i.e. when using eth0 for br-fixed and eth0.300 for br-public) we will endup with duplicate datapath-ids, which break neutron-openvswitch-agent. https://bugzilla.suse.com/show_bug.cgi?id=1022074 (cherry picked from commit eface11)
During a clean shutdown wicked will delete any ovs bridges that it feels responsible for. This means that any customer settings on tha brigde will get lost and need to be restored. As we set a custom datapath_id for our bridge to prevent bsc#1022074. We need to restore that setting when the bridge is recreated during startup. Normally chef-client would do that as part of crowbar_join, but we also need it to happen when the admin server is down for some reason. OTOH, when the node is shutdown uncleanly (e.g. during a fencing operation) the ovs bridge will not get deleted, which for the bridges that are touch by the neutron-openvswitch-agent means they will stay in "secure" mode (without any flows defined) even after reboot. This means that the node will be disconnected until neutron-openvswitch-agent is started. To prevent this we now reset the bridge's fail-mode before the interface is coming up. (cherry picked from commit 8229c1e)
(cherry picked from commit e4fc40a)
f.each do |line| | ||
# There should only be one line of output, the double quoted | ||
# datapath-id | ||
res = line.strip.tr('"', '') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping. (https://github.com/SUSE/style-guides/blob/master/Ruby.md#stylestringliterals)
testing on mkcloud environment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this change has been tested manually after reproducing the issue. A hard reset-ed network node was unable to join back. With the fix this has been resolved.
Please note that on the test system no bonded interfaces were used.
Please see the notes here: #24 (comment)
Build re-triggered: https://ci.suse.de/job/openstack-mkcloud/67487/console |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still needs testing on bare metal
Backport crowbar#1041 and crowbar#1161
Fix #24