Thx, backported to branch-2.3 with suggested changes,
On Mon, Jul 21, 2014 at 8:57 AM, Ben Pfaff <b...@nicira.com> wrote: > On Sun, Jul 20, 2014 at 12:43:41AM -0700, Alex Wang wrote: > > From: Ryan Wilson <wr...@nicira.com> > > > > Since the use of xcache, the netdev struct can be freed by the > > revalidator threads. This fact also makes the following race possible: > > > > 1. Consider there is a gre tunnel, and datapath flows that go through > > the tunnel. Now, assume user deletes the tunnel port. > > 2. The main thread closes all of its references to the corresponding > > netdev struct. > > 3. If the ukey for the tunnel datapath flows hold the last reference > > to the old port's netdev, the revalidator will then close it > > and remove the netlink notifier struct (if the netdev is the last > > vport netdev). > > 4. However, if the main thread executes the netdev_vport_run(), and > > sees the existence of netlink notifier struct (before revalidator > > frees it), it will try polling updates from the notifier socket. > > And when it polls the socket fd, the fd has already been freed, > > and poll will keep failing with "Bad file descriptor". > > > > This race has already been fixed on master by commit 3c27dbe6 (route > > -table: Make route-table module thread-safe.). This commit backports > > it to branch-2.3. > > > > VMware-BZ: #1287360 > > > > Signed-off-by: Alex Wang <al...@nicira.com> > > This should reproduce Ryan's Signed-off-by from the original commit. > > Acked-by: Ben Pfaff <b...@nicira.com> > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev