On Thu, Mar 29, 2018 at 10:33:56AM +0800, [email protected] wrote: > From: l00397770 <[email protected]> > > When creating a port using ovs-vsctl, its Openflow port number is > automatically > assigned, and the max value is 32767. After adding 32767 ports, subsequent > ports' > number are all 65535, and they are all inserted into a bridge's ifaces hmap, > but when these ports are deleted, their hamp_nodes are not removed by > iface_destroy__, > this can cause ovs crash in the following call path: > bridge_reconfigure ---> bridge_add_ports ---> bridge_add_ports__ ---> > iface_create > ---> hmap_insert_at ---> hmap_expand_at ---> resize ---> hmap_insert_fast, > the bridge's ifaces hmap bucket is corrupted. > > To fix the above issue, we check Openflow port number in iface_do_create: if > the port > number is 65535, report an error and do not add this port into a bridge. > > Signed-off-by: [email protected] > Acked-By: [email protected]
Thank you for the bug fix. This adds a new check to the caller of ofproto_port_add(). That function is documented to set the ofp_port argument to OFPP_NONE only if there is an error. The caller already checks for an error return. Therefore, it sounds like there is a bug in ofproto_port_add() that can cause it to set the port to OFPP_NONE even without reporting an error. Would you mind trying to find and fix the error in ofproto_port_add(), instead of covering it up in the caller? Thanks, Ben. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
