On Thursday 09 June 2011 21:46:34 Hans Schillstrom wrote:
> On Thursday, June 09, 2011 15:11:23 Patrick McHardy wrote:
> > On 09.06.2011 14:57, Hans Schillstrom wrote:
> > > Hello
> > > I have a problem with ip_vs_conn_flush() and expiring timers ...
> > > After a couple of hours checking locks, I'm still not closer to a
> > > solution
> > > Conntrack differs a bit between 2.6.32 vs .2.6.39 but I don't think
> > > that's the reason in this case.
> > >
> > > I think the netns cleanup cased this, but I'm not a conntrack expert :)
> > >
> > > The dump below is from a back-ported ipvs to 2.6.32.27
> > > The extra patches that renamed the cleanup patches is there that I sent
> > > to Simon i.e
> > > __ip_vs_conn_cleanup renamed to ip_vs_conn_net_cleanup etc.
> > >
> >
> > This looks like nfnetlink.c excited and destroyed the nfnl socket, but
> > ip_vs was still holding a reference to a conntrack. When the conntrack
> > got destroyed it created a ctnetlink event, causing an oops in
> > netlink_has_listeners when trying to use the destroyed nfnetlink
> > socket.
> >
> > Usually this shouldn't happen since network namespace cleanup
> > happens in reverse order from registration. In this case the
> > reason might be that IPVS has no dependencies on conntrack
> > or ctnetlink and therefore can get loaded first, meaning it
> > will get cleaned up afterwards.
> >
> > Does that make any sense?
> >
> Yes,
> From what I can see is ip_vs have a dependency on nf_conntrack but not on
> nf_conntrack_netlink
> i.e. nf_conntrack is loded first and then ip_vs and last nf_conntrack_netlink
Tested,
with nf_conntrack_netlink loaded before ip_vs there is no problem.
>
> It's hard to tell exactly what was going on in user-space when the lxc
> container get killed....
> Basically there is a lot of traffic (and connections) through the container
> with ipvs inside,
> - ipvs conntrack support is turned on
> - iptables with conntrack
> - conntrackd is running
> - ~50 iptables rules
> I'm not sure if it's only IPv4 traffic ...
>
> Hmmm... I think I know, the culprit is conntrackd !! (i.e. it causes loading
> of ct_netlink)
> conntrackd will definitely get killed before the namespace exit starts
> I think it is like you describe, I will make some test tomorrow.
> How to solve this is another question....
>
> Thanks a lot Patrick.
>
--
Regards
Hans Schillstrom <hans.schillstrom@xxxxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
|