On Wed, Feb 3, 2021 at 5:43 PM Dumitru Ceara <[email protected]> wrote: > > On 2/3/21 12:06 PM, Numan Siddique wrote: > > On Tue, Feb 2, 2021 at 3:15 PM Dumitru Ceara <[email protected]> wrote: > >> > >> The supported upgrade procedure is to always upgrade ovn-controllers > >> first and OVN DBs and ovn-northd later. This leads however to the > >> situation when ovn-controller might try to set the Port_Binding.up field > >> while the Southbound DB isn't yet aware of this field which would > >> trigger transaction failures and control plane/data plane outages. > >> > >> To avoid such situations ovn-controller only sets the Port_Binding.up > >> field if it was explicitly set to 'false'. This ensures that the SB > >> database was already upgraded. > >> > >> On the ovn-northd side, as soon as ovn-northd is upgraded it will update > >> all existing Port_Bindings and explicitly set 'Port_Binding.up' to > >> false, implicitly notifying ovn-controller that it is safe to write to > >> the field. > >> > >> Reported-by: Numan Siddique <[email protected]> > >> Fixes: 4d3cb42b076b ("binding: Set Logical_Switch_Port.up when all OVS > >> flows are installed.") > >> Signed-off-by: Dumitru Ceara <[email protected]> > > > > > > Thanks Dumitru for addressing this issue. > > Thanks for the review! > > > > > I see a problem with the approach taken here when the central nodes > > are upgraded first. > > > > I do understand that OVN recommends updating/upgrading ovn-controllers > > first. But from > > what I have seen, Openstack tripleo (and possibly Openshift too) > > update the central nodes > > first. > > > > Suppose if ovn-northd and DBs are upgraded first, then after this > > patch, ovn-northd sets > > the logical_switch_port.up to 'down' for all the logical ports until > > the ovn-controllers are > > upgraded. This could cause some control plane issues. Like Openstack > > neutron may notify > > Nova service of vif-unplugged events. We could see this issue even if > > ovn-controllers are configured > > with - "ovn-match-northd-version=true". > > > > Another approach to solve this problem would be - ovn-controller will > > not set the port_binding.up > > to true if the internal version in SB DB is lesser than the version in > > which this new column - port_binding.up > > was added. > > > > What do you think ? > > > > An alternative is to add a "features" column to SB.Chassis. Newer > ovn-controllers could register there that they support a specific > feature, e.g., "port-up-notification". > > In northd we could check the feature support for chassis that claimed a > port binding and based on that take into account Port_Binding.up when > setting LSP.up. > > Does this sound ok?
This sounds fine to me. Thanks Numan > > Thanks, > Dumitru > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
