[ovs-dev] [PATCH] ovs-vswitchd: Notify db clients only when reconfiguration is really done.
Ben Pfaff
blp at nicira.com
Tue Apr 24 14:06:04 PDT 2012
Yes, I agree.
On Tue, Apr 24, 2012 at 02:03:16PM -0700, Ethan Jackson wrote:
> Just to be clear I think this patch is now obsolete so I don't intend
> to review it.
>
> Ethan
>
> On Fri, Apr 20, 2012 at 10:38, Ben Pfaff <blp at nicira.com> wrote:
> > The "cur_cfg" column in the database is supposed to reflect the latest
> > complete (re)configuration of the system. For a long time, any call to
> > bridge_reconfigure() always ensured this. However, commit c7e7bb21ff made
> > it possible that bridge_reconfigure() only does part of the necessary work,
> > but still made its caller always notify the client that reconfiguration was
> > complete. This commit fixes the problem.
> >
> > This commit also moves a little bit of code out of bridge_reconfigure()
> > into the caller. This is not necessary, but it seemed logical to group
> > this together with updating "cur_cfg".
> >
> > CC: Ethan Jackson <ethan at nicira.com>
> > Reported-by: Pravin B Shelar <pshelar at nicira.com>
> > Signed-off-by: Ben Pfaff <blp at nicira.com>
> > ---
> > vswitchd/bridge.c | 15 ++++++++-------
> > 1 files changed, 8 insertions(+), 7 deletions(-)
> >
> > diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
> > index f4a10e6..e4a7fa8 100644
> > --- a/vswitchd/bridge.c
> > +++ b/vswitchd/bridge.c
> > @@ -497,12 +497,6 @@ bridge_reconfigure(const struct ovsrec_open_vswitch *ovs_cfg)
> > bridge_configure_tables(br);
> > }
> > free(managers);
> > -
> > - if (!need_reconfigure) {
> > - /* ovs-vswitchd has completed initialization, so allow the process that
> > - * forked us to exit successfully. */
> > - daemonize_complete();
> > - }
> > }
> >
> > /* Iterate over all ofprotos and delete any of them that do not have a
> > @@ -1990,8 +1984,15 @@ bridge_run(void)
> > struct ovsdb_idl_txn *txn = ovsdb_idl_txn_create(idl);
> >
> > bridge_reconfigure(cfg);
> > + if (!need_reconfigure) {
> > + /* Notify database clients that reconfiguration is complete. */
> > + ovsrec_open_vswitch_set_cur_cfg(cfg, cfg->next_cfg);
> > +
> > + /* ovs-vswitchd has completed initialization, so allow the
> > + * process that forked us to exit successfully. */
> > + daemonize_complete();
> > + }
> >
> > - ovsrec_open_vswitch_set_cur_cfg(cfg, cfg->next_cfg);
> > ovsdb_idl_txn_commit(txn);
> > ovsdb_idl_txn_destroy(txn); /* XXX */
> > } else {
> > --
> > 1.7.2.5
> >
More information about the dev
mailing list