Commit 62c5c3e (bridge: Rate limit the statistics update.) makes ovs try committing the statistics even if ovs failed to get ovsdb configuration. This causes the ovs committing the NULL transaction pointer.
To fix this issue, this commit makes ovs skip statistics update if it cannot get ovsdb config. VMware-BZ: #1331308 Signed-off-by: Alex Wang <al...@nicira.com> --- vswitchd/bridge.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index 656182f..d2643a0 100644 --- a/vswitchd/bridge.c +++ b/vswitchd/bridge.c @@ -2389,32 +2389,30 @@ bridge_run(void) } /* Refresh interface and mirror stats if necessary. */ - if (time_msec() >= stats_timer) { + if (time_msec() >= stats_timer && cfg) { enum ovsdb_idl_txn_status status; /* Rate limit the update. Do not start a new update if the * previous one is not done. */ if (!stats_txn) { - if (cfg) { - stats_txn = ovsdb_idl_txn_create(idl); - HMAP_FOR_EACH (br, node, &all_bridges) { - struct port *port; - struct mirror *m; - - HMAP_FOR_EACH (port, hmap_node, &br->ports) { - struct iface *iface; - - LIST_FOR_EACH (iface, port_elem, &port->ifaces) { - iface_refresh_stats(iface); - } - port_refresh_stp_stats(port); - } - HMAP_FOR_EACH (m, hmap_node, &br->mirrors) { - mirror_refresh_stats(m); + stats_txn = ovsdb_idl_txn_create(idl); + HMAP_FOR_EACH (br, node, &all_bridges) { + struct port *port; + struct mirror *m; + + HMAP_FOR_EACH (port, hmap_node, &br->ports) { + struct iface *iface; + + LIST_FOR_EACH (iface, port_elem, &port->ifaces) { + iface_refresh_stats(iface); } + port_refresh_stp_stats(port); + } + HMAP_FOR_EACH (m, hmap_node, &br->mirrors) { + mirror_refresh_stats(m); } - refresh_controller_status(); } + refresh_controller_status(); } status = ovsdb_idl_txn_commit(stats_txn); -- 1.7.9.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev