Skip to content

Commit

Permalink
ovn-northd: Only run idl loop if something changed.
Browse files Browse the repository at this point in the history
Before refactoring the main loop to reuse ovsdb_idl_loop_* functions, we
would use a sequence to see if anything changed in NB database to
compute and notify the SB database, and vice versa. This logic got
dropped with the refactor, causing a testsuite failure in the ovn-sbctl
test. Reintroduce the IDL sequence number checking.

Fixes: 331e7ae ("ovn-northd: Refactor main loop to use ovsdb_idl_loop_*
functions")
Suggested-by: Numan Siddique <nusiddiq@redhat.com>
Signed-off-by: Joe Stringer <joe@ovn.org>
Signed-off-by: Justin Pettit <jpettit@ovn.org>
Tested-by: Thadeu Lima de Souza Cascardo <cascardo@redhat.com>
Acked-by: Ben Pfaff <blp@ovn.org>
  • Loading branch information
joestringer authored and justinpettit committed Dec 4, 2015
1 parent 47fe8a1 commit f20396e
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions ovn/northd/ovn-northd.c
Expand Up @@ -1799,6 +1799,7 @@ int
main(int argc, char *argv[])
{
extern struct vlog_module VLM_reconnect;
unsigned int ovnnb_seqno, ovnsb_seqno;
int res = EXIT_SUCCESS;
struct unixctl_server *unixctl;
int retval;
Expand Down Expand Up @@ -1868,6 +1869,9 @@ main(int argc, char *argv[])
add_column_noalert(ovnsb_idl_loop.idl, &sbrec_port_binding_col_mac);
ovsdb_idl_add_column(ovnsb_idl_loop.idl, &sbrec_port_binding_col_chassis);

ovnnb_seqno = ovsdb_idl_get_seqno(ovnnb_idl_loop.idl);
ovnsb_seqno = ovsdb_idl_get_seqno(ovnsb_idl_loop.idl);

/* Main loop. */
exiting = false;
while (!exiting) {
Expand All @@ -1878,8 +1882,14 @@ main(int argc, char *argv[])
.ovnsb_txn = ovsdb_idl_loop_run(&ovnsb_idl_loop),
};

ovnnb_db_run(&ctx);
ovnsb_db_run(&ctx);
if (ovnnb_seqno != ovsdb_idl_get_seqno(ctx.ovnnb_idl)) {
ovnnb_seqno = ovsdb_idl_get_seqno(ctx.ovnnb_idl);
ovnnb_db_run(&ctx);
}
if (ovnsb_seqno != ovsdb_idl_get_seqno(ctx.ovnsb_idl)) {
ovnsb_seqno = ovsdb_idl_get_seqno(ctx.ovnsb_idl);
ovnsb_db_run(&ctx);
}

unixctl_server_run(unixctl);
unixctl_server_wait(unixctl);
Expand Down

0 comments on commit f20396e

Please sign in to comment.