Re: [ovs-dev] [PATCH v2] netdev, dpif: fix the crash/assert on port delete
Tested the patch with the steps causing the crash. No problem detected. Also ran make check with no issues. On Mon, Nov 13, 2017 at 2:06 PM, Ben Pfaffwrote: > I sent a patch series that should help a little. Would you mind testing > it against the case that was causing problems? The series is posted > here: > https://patchwork.ozlabs.org/project/openvswitch/list/?series=13360 > > On Mon, Nov 13, 2017 at 12:36:06PM -0800, Ashish Varma wrote: > > Thanks Ben. > > > > On Mon, Nov 13, 2017 at 11:36 AM, Ben Pfaff wrote: > > > > > On Mon, Nov 06, 2017 at 12:17:45PM -0800, Ashish Varma wrote: > > > > a crash is seen in "netdev_ports_remove" when an interface is deleted > > > and added > > > > back in the system and when the interface is part of a bridge > > > configuration. > > > > e.g. steps: > > > > create a tap0 interface using "ip tuntap add.." > > > > add the tap0 interface to br0 using "ovs-vsctl add-port.." > > > > delete the tap0 interface from system using "ip tuntap del.." > > > > add the tap0 interface back in system using "ip tuntap add.." > > > >(this changes the ifindex of the interface) > > > > delete tap0 from br0 using "ovs-vsctl del-port.." > > > > > > > > In the function "netdev_ports_insert", two hmap entries were created > for > > > > mapping "portnum -> netdev" and "ifindex -> portnum". > > > > When the interface is deleted from the system, the > "netdev_ports_remove" > > > > function is not getting called and the old ifindex entry is not > getting > > > > cleaned up from the "ifindex_to_port" hmap. > > > > > > > > As part of the fix, added function "dpif_port_remove" which will call > > > > "netdev_ports_remove" in the path where the interface deletion from > the > > > system > > > > is detected. > > > > Also, in "netdev_ports_remove", added the code where the > > > "ifindex_to_port_data" > > > > (ifindex -> portnum map node) is getting freed when the ifindex is > not > > > > available any more. (as the interface is already deleted.) > > > > > > > > VMware-BZ: #1975788 > > > > Signed-off-by: Ashish Varma > > > > > > Thanks. I applied this to master and branch-2.8. > > > > > > I still think that the underlying design here is a bad one. I'm going > > > to look at a better fix. > > > > ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Re: [ovs-dev] [PATCH v2] netdev, dpif: fix the crash/assert on port delete
I sent a patch series that should help a little. Would you mind testing it against the case that was causing problems? The series is posted here: https://patchwork.ozlabs.org/project/openvswitch/list/?series=13360 On Mon, Nov 13, 2017 at 12:36:06PM -0800, Ashish Varma wrote: > Thanks Ben. > > On Mon, Nov 13, 2017 at 11:36 AM, Ben Pfaffwrote: > > > On Mon, Nov 06, 2017 at 12:17:45PM -0800, Ashish Varma wrote: > > > a crash is seen in "netdev_ports_remove" when an interface is deleted > > and added > > > back in the system and when the interface is part of a bridge > > configuration. > > > e.g. steps: > > > create a tap0 interface using "ip tuntap add.." > > > add the tap0 interface to br0 using "ovs-vsctl add-port.." > > > delete the tap0 interface from system using "ip tuntap del.." > > > add the tap0 interface back in system using "ip tuntap add.." > > >(this changes the ifindex of the interface) > > > delete tap0 from br0 using "ovs-vsctl del-port.." > > > > > > In the function "netdev_ports_insert", two hmap entries were created for > > > mapping "portnum -> netdev" and "ifindex -> portnum". > > > When the interface is deleted from the system, the "netdev_ports_remove" > > > function is not getting called and the old ifindex entry is not getting > > > cleaned up from the "ifindex_to_port" hmap. > > > > > > As part of the fix, added function "dpif_port_remove" which will call > > > "netdev_ports_remove" in the path where the interface deletion from the > > system > > > is detected. > > > Also, in "netdev_ports_remove", added the code where the > > "ifindex_to_port_data" > > > (ifindex -> portnum map node) is getting freed when the ifindex is not > > > available any more. (as the interface is already deleted.) > > > > > > VMware-BZ: #1975788 > > > Signed-off-by: Ashish Varma > > > > Thanks. I applied this to master and branch-2.8. > > > > I still think that the underlying design here is a bad one. I'm going > > to look at a better fix. > > ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Re: [ovs-dev] [PATCH v2] netdev, dpif: fix the crash/assert on port delete
Thanks Ben. On Mon, Nov 13, 2017 at 11:36 AM, Ben Pfaffwrote: > On Mon, Nov 06, 2017 at 12:17:45PM -0800, Ashish Varma wrote: > > a crash is seen in "netdev_ports_remove" when an interface is deleted > and added > > back in the system and when the interface is part of a bridge > configuration. > > e.g. steps: > > create a tap0 interface using "ip tuntap add.." > > add the tap0 interface to br0 using "ovs-vsctl add-port.." > > delete the tap0 interface from system using "ip tuntap del.." > > add the tap0 interface back in system using "ip tuntap add.." > >(this changes the ifindex of the interface) > > delete tap0 from br0 using "ovs-vsctl del-port.." > > > > In the function "netdev_ports_insert", two hmap entries were created for > > mapping "portnum -> netdev" and "ifindex -> portnum". > > When the interface is deleted from the system, the "netdev_ports_remove" > > function is not getting called and the old ifindex entry is not getting > > cleaned up from the "ifindex_to_port" hmap. > > > > As part of the fix, added function "dpif_port_remove" which will call > > "netdev_ports_remove" in the path where the interface deletion from the > system > > is detected. > > Also, in "netdev_ports_remove", added the code where the > "ifindex_to_port_data" > > (ifindex -> portnum map node) is getting freed when the ifindex is not > > available any more. (as the interface is already deleted.) > > > > VMware-BZ: #1975788 > > Signed-off-by: Ashish Varma > > Thanks. I applied this to master and branch-2.8. > > I still think that the underlying design here is a bad one. I'm going > to look at a better fix. > ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev
Re: [ovs-dev] [PATCH v2] netdev, dpif: fix the crash/assert on port delete
On Mon, Nov 06, 2017 at 12:17:45PM -0800, Ashish Varma wrote: > a crash is seen in "netdev_ports_remove" when an interface is deleted and > added > back in the system and when the interface is part of a bridge configuration. > e.g. steps: > create a tap0 interface using "ip tuntap add.." > add the tap0 interface to br0 using "ovs-vsctl add-port.." > delete the tap0 interface from system using "ip tuntap del.." > add the tap0 interface back in system using "ip tuntap add.." >(this changes the ifindex of the interface) > delete tap0 from br0 using "ovs-vsctl del-port.." > > In the function "netdev_ports_insert", two hmap entries were created for > mapping "portnum -> netdev" and "ifindex -> portnum". > When the interface is deleted from the system, the "netdev_ports_remove" > function is not getting called and the old ifindex entry is not getting > cleaned up from the "ifindex_to_port" hmap. > > As part of the fix, added function "dpif_port_remove" which will call > "netdev_ports_remove" in the path where the interface deletion from the system > is detected. > Also, in "netdev_ports_remove", added the code where the > "ifindex_to_port_data" > (ifindex -> portnum map node) is getting freed when the ifindex is not > available any more. (as the interface is already deleted.) > > VMware-BZ: #1975788 > Signed-off-by: Ashish VarmaThanks. I applied this to master and branch-2.8. I still think that the underlying design here is a bad one. I'm going to look at a better fix. ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev