Re: [ovs-dev] [PATCH v2] netdev, dpif: fix the crash/assert on port delete

2017-11-14 Thread Ashish Varma
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 Pfaff  wrote:

> 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

2017-11-13 Thread Ben Pfaff
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

2017-11-13 Thread Ashish Varma
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

2017-11-13 Thread Ben Pfaff
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