On Thu, Nov 19, 2020 at 11:50:57AM +0100, Dumitru Ceara wrote: > On 11/19/20 5:15 AM, Ben Pfaff wrote: > > On Tue, Nov 17, 2020 at 05:50:20PM +0100, Dumitru Ceara wrote: > >> It is not correct for ovn-controller to pass the current SB_Global.nb_cfg > >> value to ofctrl_put() if there are pending changes to conditional > >> monitoring clauses (local or in flight). It might be that after the > >> monitor condition is acked by the SB, records that were added to the SB > >> before SB_Global.nb_cfg was set are now sent as updates to > >> ovn-controller. These should be first installed in OVS before > >> ovn-controller reports that it caught up with the current > >> SB_Global.nb_cfg value. > >> > >> Also, ofctrl_put should not advance cur_cfg if there are flow updates in > >> flight.
... > > ovn-controller has changed (advanced?) to the point that I have trouble > > understanding the code now. I'm going to assume that you understand it > > pretty well, but please allow me to ask a question here. Will this > > I'm doing my best but there are so many dependencies and side effects in > the code.. DDlog might actually help with that, eventually. It should allow us to program in the problem domain, rather than writing a lot of code to manage dependencies. > > always manage to come up to date with some version of the sb, or is > > there a chance that it never will report a consistent value if the sb > > keeps changing quickly? I wasn't able to figure that out with a quick > > look. > > > > Now, back to your question: > > TLDR: If ovn-controller has to continuously change its monitor > conditions I *think* there is a chance that it will never report that is > caught up with a specific SB seqno. However, I tried various scenarios > (with quick SB updates or claiming/releasing OVS interfaces in quick > succession) and I didn't manage to make "ovn-nbctl --wait=hv sync" block > indefinitely. That's good, empirically. > Moreover, I think the question is if it's correct for ovn-controller to > report it has caught up if there are unseen SB flows that correspond to > its currently requested but not acked monitor condition? I think the answer is "no", which means that the next question is, how do we implement it properly? I don't have an immediate answer. The database interfacing code is rather complex these days. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
