On Tue, Mar 12, 2019 at 08:34:39PM +0800, 贾乘 wrote: > Hi All, > > This is my bridge configuration: > > Bridge br-int > Controller "tcp:127.0.0.1:6653" > is_connected: true > fail_mode: secure > Port br-int > Interface br-int > type: internal > Port vxlan-vtp > Interface vxlan-vtp > type: vxlan > options: {dst_port="4789", key=flow, > local_ip="10.23.127.129", remote_ip=flow} > Port br-ex-patch > Interface br-ex-patch > type: patch > options: {peer=br-int-patch} > I do something as the following steps: > 1. Disconnect the controller > 2. Change the vxlan port interface , the local_ip is set to be "flow”. > > The ovs-vswitchd is crashed, then I got the ovs-vswitchd core dump: > > #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 > #1 0x00007f855f89542a in __GI_abort () at abort.c:89 > #2 0x000055e14c6f7fae in ofputil_protocol_to_ofp_version > (protocol=<optimized out>) at lib/ofp-protocol.c:123 > #3 0x000055e14c6f32ce in ofputil_encode_port_status > (ps=ps@entry=0x7ffdfceab670, protocol=<optimized out>) at lib/ofp-port.c:938 > #4 0x000055e14c662dcb in connmgr_send_port_status (mgr=0x55e14da54370, > source=source@entry=0x0, pp=pp@entry=0x55e14db9af50, reason=reason@entry=2 > '\002') > at ofproto/connmgr.c:1654 > #5 0x000055e14c62bf26 in update_port (ofproto=ofproto@entry=0x55e14db778e0, > name=name@entry=0x55e14dbe01a0 "vxlan-vtp") at ofproto/ofproto.c:2652 > #6 0x000055e14c62c477 in ofproto_run (p=0x55e14db778e0) at > ofproto/ofproto.c:1818 > #7 0x000055e14c61a8bc in bridge_run__ () at vswitchd/bridge.c:2944 > #8 0x000055e14c61bc71 in bridge_reconfigure > (ovs_cfg=ovs_cfg@entry=0x55e14da5ab10) at vswitchd/bridge.c:721 > #9 0x000055e14c61fba9 in bridge_run () at vswitchd/bridge.c:3023 > #10 0x000055e14c2bdbdd in main (argc=<optimized out>, argv=<optimized out>) > at vswitchd/ovs-vswitchd.c:125 > > > From the code , the function connmgr_send_port_status try to send the > message of the port status update to every controller connection, but since I > disconnect the controller , the rconn state is S_BACKOFF. So based on the > function > ofconn_get_protocol, the protocol will be OFPUTIL_P_NONE. When calling > ofputil_encode_port_status with none protocol, the ovs-vswitchd is crashed. > > connmgr_send_port_status. —> ofconn_get_protocol (conn disconnected, it > return none protocol) > —> ofputil_encode_port_status. > (With None protocol , ovs-vswitchd crash) > > > So I suggest to check if the protocol is null before calling > ofputil_encode_port_status.
Thanks for the report. What version of OVS are you testing? _______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss