[ovs-dev] Clustered DB commits causes sandbox errors

Mark Michelson mmichels at redhat.com
Mon Mar 26 21:42:37 UTC 2018


Hi,

I'm currently on the master branch of OVS, commit "1b1d2e6da ovsdb: 
Introduce experimental support for clustered databases." I started the 
OVS sandbox using `make sandbox SANDBOXFLAGS="--ovn"` . I tried to run 
some tests to add some logical switch ports to OVN. Running `ovn-nbctl 
--wait=hv lsp-add ls0 lsp0` blocks forever. I found that ovn-northd.log 
was peppered with lines like the following:

2018-03-26T21:21:06.509Z|00018|reconnect|INFO|unix:/home/putnopvut/ovs/tutorial/sandbox/ovnnb_db.sock: 
connecting...
2018-03-26T21:21:06.509Z|00019|reconnect|INFO|unix:/home/putnopvut/ovs/tutorial/sandbox/ovnnb_db.sock: 
connection attempt failed (No such file or directory)
2018-03-26T21:21:06.509Z|00020|reconnect|INFO|unix:/home/putnopvut/ovs/tutorial/sandbox/ovnnb_db.sock: 
continuing to reconnect in the background but suppressing further logging
2018-03-26T21:21:06.509Z|00021|reconnect|INFO|unix:/home/putnopvut/ovs/tutorial/sandbox/ovnsb_db.sock: 
connecting...
2018-03-26T21:21:06.509Z|00022|reconnect|INFO|unix:/home/putnopvut/ovs/tutorial/sandbox/ovnsb_db.sock: 
connection attempt failed (No such file or directory)
2018-03-26T21:21:06.509Z|00023|reconnect|INFO|unix:/home/putnopvut/ovs/tutorial/sandbox/ovnsb_db.sock: 
continuing to reconnect in the background but suppressing further logging

And ovn-controller.log has lines like:

2018-03-26T21:21:00.202Z|00021|rconn|INFO|unix:/home/putnopvut/ovs/tutorial/sandbox/br-int.mgmt: 
connected
2018-03-26T21:21:00.203Z|00022|ovsdb_idl|WARN|transaction error: 
{"details":"RBAC rules for client \"chassis-1\" role \"ovn-controller\" 
prohibit row insertion into table \"Encap\".","error":"permission error"}

I attempted to bisect to see what commit introduced the problem, but I 
ran into problems here, too. If I revert to HEAD~6 (077f03028 
jsonrpc-server: Separate changing read_only status from reconnecting.), 
then the ovs-sandbox works as expected. If I revert to HEAD~5, HEAD~4, 
HEAD~3, HEAD~2, or HEAD~, I hit a compilation error:

In file included from lib/ovsdb-idl.c:45:0:
lib/ovsdb-idl.c: In function ‘ovsdb_idl_send_monitor_request’:
lib/ovsdb-idl.c:1638:34: error: ‘struct ovsdb_idl’ has no member named 
‘class_’
                                idl->class_->database, column->name);
                                   ^
./include/openvswitch/vlog.h:271:41: note: in definition of macro ‘VLOG’
              vlog(&this_module, level__, __VA_ARGS__);   \
                                          ^~~~~~~~~~~
lib/ovsdb-idl.c:1636:21: note: in expansion of macro ‘VLOG_WARN’
                      VLOG_WARN("%s table in %s database has synthetic "
                      ^~~~~~~~~

Unfortunately, I have a 6 commit range where the error may have been 
introduced. I would love to have submitted a patch to fix this, but I 
don't have much more time left today to work on this, I'm off tomorrow, 
and the diff between HEAD~6 and HEAD is massive.

Mark!


More information about the dev mailing list