[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