[ovs-dev] openvswitch 2.1 on openSUSE13.1 - ovsbd-server enters infinite loop

Karol Mroz kmroz at suse.com
Tue Apr 1 18:15:41 UTC 2014


Hello,

I'm experiencing a problem starting openvswitch 2.1 on an openSUSE13.1
(kernel version 3.11.10) system. Specifically, ovsdb-server enters an
infinite loop during logging bringup.

When setting up logging levels for the various vlog_modules (please
see lib/vlog.c:set_facility_level() and lib/vlog.c:vlog_set_log_file())
the lib/list.h:LIST_FOR_EACH macro iterates over a doubly linked
list which in our case enters a final condition where prev==next and never
terminates.

>From gdb, the structure in this condition looks like the following:

(gdb) p *mp
$7 = {list = {prev = 0x6085a0 <VLM_ovsdb_server>,
   next = 0x6085a0 <VLM_ovsdb_server>}, name = 0x406699 "ovsdb_server",
   levels = {4, 1, 4}, min_level = 4, honor_rate_limits = true}

Since mp->list.next never hits NULL, LIST_FOR_EACH never terminates.

ovsdb-server is brought up in the following manner:

ovsdb-server /etc/openvswitch/conf.db -vconsole:emer -vsyslog:err
-vfile:info --remote=punix:/var/run/openvswitch/db.sock
--private-key=db:Open_vSwitch,SSL,private_key
--certificate=db:Open_vSwitch,SSL,certificate
--bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert --no-chdir
--log-file=/var/log/openvswitch/ovsdb-server.log
--pidfile=/var/run/openvswitch/ovsdb-server.pid --detach --monitor

To work around the problem, I cooked up this quick macro and have
successfully brought up the openvswitch service, added a bridge and port.

I'm curious if anyone has hit this kind of problem? Also, any input on this
workaround from someone here who is familiar with this code path would
be very helpful.

Thanks,
-Karol

-------------- next part --------------
A non-text attachment was scrubbed...
Name: log-check-module-loop.patch
Type: text/x-patch
Size: 1470 bytes
Desc: logging bringup workaround
URL: <http://mail.openvswitch.org/pipermail/ovs-dev/attachments/20140401/55f2ea3e/attachment-0005.bin>


More information about the dev mailing list