[ovs-dev] [PATCH] bridge: Complete initial configuration even with empty database.

Ben Pfaff blp at nicira.com
Thu Apr 11 22:06:26 UTC 2013


I think that is an unrelated problem.  I sent out a fix:
        http://openvswitch.org/pipermail/dev/2013-April/026581.html

On Thu, Apr 11, 2013 at 02:46:28PM -0700, Ansis Atteka wrote:
> If ovsdb-server is not running and I try to start single ovs-vswitchd
> instance without any init scripts, then I am still seeing 100% CPU
> utilization and multiple ovs-vswitchd instances in "ps" output. Still
> trying to understand what is going on...
> 
> aatteka at aatteka-MacBookPro:~/openvswitch$ ps -Af | grep ovs-vs
> root      8187 26324  0 14:38 pts/3    00:00:00 sudo ovs-vswitchd
> unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info
> --mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log
> --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor
> root      8188  8187  0 14:38 pts/3    00:00:00 ovs-vswitchd
> unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info
> --mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log
> --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor
> root      8189  8188  0 14:38 ?        00:00:00 ovs-vswitchd
> unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info
> --mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log
> --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor
> root      8190  8189 87 14:38 ?        00:01:43 ovs-vswitchd
> unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info
> --mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log
> --pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor
> root      8191  8190  0 14:38 ?        00:00:00 ovs-vswitchd: worker
> process for pid
> 8190
> 
> aatteka   8219 26488  0 14:40 pts/4    00:00:00 grep --color=auto ovs-vs
> aatteka at aatteka-MacBookPro:~/openvswitch$ top
> 
> top - 14:41:50 up  4:47,  6 users,  load average: 1.31, 1.18, 1.14
> Tasks: 224 total,   2 running, 222 sleeping,   0 stopped,   0 zombie
> %Cpu(s):  4.1 us,  2.1 sy,  0.0 ni, 93.1 id,  0.6 wa,  0.0 hi,  0.1 si,
> 0.0 st
> KiB Mem:   8087432 total,  4069712 used,  4017720 free,   277992 buffers
> KiB Swap:  8298492 total,        0 used,  8298492 free,  1593760 cached
> 
>   PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+
> COMMAND
> 
>  8190 root      20   0 23288 6796 6180 R 104.1  0.1   3:03.01
> ovs-vswitchd
> 
> ...
> 
> 
> On Thu, Apr 11, 2013 at 2:03 PM, Ben Pfaff <blp at nicira.com> wrote:
> 
> > If the database was empty, that is, it did not even contain an Open_vSwitch
> > top-level configuration record, at ovs-vswitchd startup time, then
> > OVS failed to detach and used 100% CPU.  This commit fixes the problem.
> >
> > This problem was introduced by commit 63ff04e82623e765 (bridge: Only
> > complete daemonization after db commits initial config.).
> >
> > This problem did not manifest if the initscripts supplied with Open vSwitch
> > were used, because those initscripts always initialize the database before
> > starting ovs-vswitchd, so this problem affects only users with hand-rolled
> > local OVS startup scripts.
> >
> > Bug #16090.
> > Reported-by: Pravin Shelar <pshelar at nicira.com>
> > Tested-by: Pravin Shelar <pshelar at nicira.com>
> > Reported-by: Paul Ingram <paul at nicira.com>
> > Reported-by: Amre Shakimov <ashakimov at vmware.com>
> > Signed-off-by: Ben Pfaff <blp at nicira.com>
> > ---
> >  AUTHORS           |    1 +
> >  vswitchd/bridge.c |   34 +++++++++++++++++-----------------
> >  2 files changed, 18 insertions(+), 17 deletions(-)
> >
> > diff --git a/AUTHORS b/AUTHORS
> > index 07dce20..e3568bd 100644
> > --- a/AUTHORS
> > +++ b/AUTHORS
> > @@ -103,6 +103,7 @@ Alex Yip                alex at nicira.com
> >  Alexey I. Froloff       raorn at altlinux.org
> >  Amar Padmanabhan        amar at nicira.com
> >  Amey Bhide              abhide at nicira.com
> > +Amre Shakimov           ashakimov at vmware.com
> >  André Ruß               andre.russ at hybris.com
> >  Andreas Beckmann        debian at abeckmann.de
> >  Atzm Watanabe           atzm at stratosphere.co.jp
> > diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
> > index 1fcf547..09f98d5 100644
> > --- a/vswitchd/bridge.c
> > +++ b/vswitchd/bridge.c
> > @@ -2269,25 +2269,25 @@ bridge_run(void)
> >      }
> >
> >      if (reconfiguring) {
> > -        if (cfg) {
> > -            if (!reconf_txn) {
> > -                reconf_txn = ovsdb_idl_txn_create(idl);
> > -            }
> > -            if (bridge_reconfigure_continue(cfg)) {
> > +        if (!reconf_txn) {
> > +            reconf_txn = ovsdb_idl_txn_create(idl);
> > +        }
> > +
> > +        if (bridge_reconfigure_continue(cfg ? cfg : &null_cfg)) {
> > +            reconfiguring = false;
> > +
> > +            if (cfg) {
> >                  ovsrec_open_vswitch_set_cur_cfg(cfg, cfg->next_cfg);
> > -                reconfiguring = false;
> > -
> > -                /* If we are completing our initial configuration for
> > this run
> > -                 * of ovs-vswitchd, then keep the transaction around to
> > monitor
> > -                 * it for completion. */
> > -                if (!initial_config_done) {
> > -                    initial_config_done = true;
> > -                    daemonize_txn = reconf_txn;
> > -                    reconf_txn = NULL;
> > -                }
> >              }
> > -        } else {
> > -            bridge_reconfigure_continue(&null_cfg);
> > +
> > +            /* If we are completing our initial configuration for this run
> > +             * of ovs-vswitchd, then keep the transaction around to
> > monitor
> > +             * it for completion. */
> > +            if (!initial_config_done) {
> > +                initial_config_done = true;
> > +                daemonize_txn = reconf_txn;
> > +                reconf_txn = NULL;
> > +            }
> >          }
> >      }
> >
> > --
> > 1.7.2.5
> >
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
> >



More information about the dev mailing list