While doing some testing, I noticed the following error message: Integration bridge '<garbage>' dissapeared
The reason is that the code kept around the value of the "ovn-bridge" configuration without copying it. The result was pointing to bogus memory. You would only see this if you set "ovn_bridge". If you relied on the default, the bug would not occur. Signed-off-by: Russell Bryant <rbry...@redhat.com> --- ovn/controller/ovn-controller.c | 11 +++++++---- ovn/controller/ovn-controller.h | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ovn/controller/ovn-controller.c b/ovn/controller/ovn-controller.c index 477ad0a..778dd43 100644 --- a/ovn/controller/ovn-controller.c +++ b/ovn/controller/ovn-controller.c @@ -102,14 +102,15 @@ get_core_config(struct controller_ctx *ctx) while (1) { const struct ovsrec_bridge *br_int; - const char *remote, *system_id; + const char *remote, *system_id, *br_int_name; ovsdb_idl_run(ctx->ovs_idl); - ctx->br_int_name = smap_get(&cfg->external_ids, "ovn-bridge"); - if (!ctx->br_int_name) { - ctx->br_int_name = DEFAULT_BRIDGE_NAME; + br_int_name = smap_get(&cfg->external_ids, "ovn-bridge"); + if (!br_int_name) { + br_int_name = DEFAULT_BRIDGE_NAME; } + ctx->br_int_name = xstrdup(br_int_name); br_int = get_bridge(ctx, ctx->br_int_name); if (!br_int) { @@ -240,6 +241,8 @@ main(int argc, char *argv[]) ovsdb_idl_destroy(ctx.ovs_idl); ovsdb_idl_destroy(ctx.ovnsb_idl); + free(ctx.br_int_name); + exit(retval); } diff --git a/ovn/controller/ovn-controller.h b/ovn/controller/ovn-controller.h index 9d2fb39..a1630f7 100644 --- a/ovn/controller/ovn-controller.h +++ b/ovn/controller/ovn-controller.h @@ -19,7 +19,7 @@ struct controller_ctx { char *chassis_id; /* ID for this chassis. */ - const char *br_int_name; /* Name of local integration bridge. */ + char *br_int_name; /* Name of local integration bridge. */ struct ovsdb_idl *ovnsb_idl; struct ovsdb_idl *ovs_idl; -- 2.1.0 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev