On 10/7/25 2:10 PM, Ales Musil via dev wrote: > On Tue, Oct 7, 2025 at 2:07 PM Ales Musil <[email protected]> wrote: > >> The garp_rarp node attempted to get ecmp_nexthop table through >> the txn pointer which might be null. This didn't cause any crash >> as the pointer was never dereferenced. Remove the table lookup >> completely as the table wasn't used for anything within the node. >> >> lib/ovsdb-idl.c:4184:17: runtime error: member access within null pointer >> of type 'struct ovsdb_idl_txn' >> ovsdb_idl_txn_get_idl /workspace/ovn/ovs/lib/ovsdb-idl.c:4184:17 >> en_garp_rarp_run /workspace/ovn/controller/ovn-controller.c:5604:38 >> engine_recompute /workspace/ovn/lib/inc-proc-eng.c:444:33 >> engine_compute /workspace/ovn/lib/inc-proc-eng.c:487:17 >> engine_run_node /workspace/ovn/lib/inc-proc-eng.c:546:14 >> engine_run /workspace/ovn/lib/inc-proc-eng.c:575:9 >> main /workspace/ovn/controller/ovn-controller.c:7507:21 >> >> Fixes: 05527bd6ccdb ("controller: Extract garp_rarp to engine node.") >> Signed-off-by: Ales Musil <[email protected]> >> ---
Hi Ales, Thanks for the fix! >> >> > Ah, this patch didn't include the removal of "ecmp_nh_table" > from "struct garp_rarp_ctx_in". I will take care of it in v2/merge. > With this addressed: Acked-by: Dumitru Ceara <[email protected]> > controller/ovn-controller.c | 8 +------- >> 1 file changed, 1 insertion(+), 7 deletions(-) >> >> diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c >> index ae76c8b22..9f8444c10 100644 >> --- a/controller/ovn-controller.c >> +++ b/controller/ovn-controller.c >> @@ -5598,21 +5598,15 @@ en_garp_rarp_run(struct engine_node *node, void >> *data_) >> engine_get_input("SB_mac_binding", node), >> "lport_ip"); >> >> - struct ovsdb_idl_txn *ovnsb_idl_txn = >> engine_get_context()->ovnsb_idl_txn; >> - >> - const struct sbrec_ecmp_nexthop_table *ecmp_nh_table = >> - >> sbrec_ecmp_nexthop_table_get(ovsdb_idl_txn_get_idl(ovnsb_idl_txn)); >> - >> struct ed_type_runtime_data *rt_data = >> engine_get_input_data("runtime_data", node); >> >> struct garp_rarp_ctx_in r_ctx_in = { >> - .ovnsb_idl_txn = ovnsb_idl_txn, >> + .ovnsb_idl_txn = engine_get_context()->ovnsb_idl_txn, >> .cfg = cfg, >> .sbrec_port_binding_by_datapath = sbrec_port_binding_by_datapath, >> .sbrec_port_binding_by_name = sbrec_port_binding_by_name, >> .sbrec_mac_binding_by_lport_ip = sbrec_mac_binding_by_lport_ip, >> - .ecmp_nh_table = ecmp_nh_table, >> .chassis = chassis, >> .active_tunnels = &rt_data->active_tunnels, >> .local_datapaths = &rt_data->local_datapaths, >> -- >> 2.51.0 Regards, Dumitru _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
