On Thu, Apr 20, 2023 at 01:24:08PM +0800, Tao Liu wrote: > In vxlan mode with more than 2047 lrp in router, build_ports() > prints "all port tunnel ids exhausted", and frees the lrp port. > > However, lsp of type "router" connected to the lrp still holds > the pointer in port->peer. This leads to northd crash in > build_lflows(). > > CallTrace: > build_lswitch_rport_arp_req_flows > build_lswitch_ip_unicast_lookup > build_lswitch_and_lrouter_iterate_by_op > build_lflows > en_lflow_run > engine_recompute > engine_run > inc_proc_northd_run > main > > Fixes: 3044132261d3 ("northd: Enhance implementation of port tunnel key > requests.") > Signed-off-by: Tao Liu <taoliu...@163.com> > --- > northd/northd.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/northd/northd.c b/northd/northd.c > index c10e5c20c..fe36a0362 100644 > --- a/northd/northd.c > +++ b/northd/northd.c > @@ -4598,6 +4598,9 @@ ovn_port_allocate_key(const struct sbrec_chassis_table > *sbrec_chassis_table, > if (op->sb) { > sbrec_port_binding_delete(op->sb); > } > + if (op->peer) { > + op->peer->peer = NULL; > + }
Thanks for your patch. I wonder if it is appropriate to clear op->peer->peer in ovn_port_destroy(). > ovs_list_remove(&op->list); > ovn_port_destroy(ports, op); > } > -- > 2.31.1 > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev