[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110519075557.GB3922@verge.net.au>
Date: Thu, 19 May 2011 16:55:57 +0900
From: Simon Horman <horms@...ge.net.au>
To: Julian Anastasov <ja@....bg>
Cc: Dave Jones <davej@...hat.com>, netdev@...r.kernel.org,
Wensong Zhang <wensong@...uxvirtualserver.org>,
Hans Schillstrom <hans@...illstrom.com>
Subject: Re: ip_vs_ftp causing ip_vs oops on module load.
On Thu, May 19, 2011 at 09:33:55AM +0300, Julian Anastasov wrote:
>
> Hello,
>
> On Thu, 19 May 2011, Simon Horman wrote:
>
> > > > Call Trace:
> > > > [<ffffffff8107be36>] raw_notifier_chain_register+0xe/0x10
> > > > [<ffffffff81403058>] register_netdevice_notifier+0x2d/0x1b6
> > > > [<ffffffffa0432106>] ? ip_vs_conn_init+0x106/0x106 [ip_vs]
> > > > [<ffffffffa04322c7>] ip_vs_control_init+0xa5/0xce [ip_vs]
> > > > [<ffffffffa0432106>] ? ip_vs_conn_init+0x106/0x106 [ip_vs]
> > > > [<ffffffffa0432116>] ip_vs_init+0x10/0x11c [ip_vs]
> > > > [<ffffffff81002099>] do_one_initcall+0x7f/0x13a
> > > > [<ffffffff81096524>] sys_init_module+0x132/0x281
> > > > [<ffffffff814cc702>] system_call_fastpath+0x16/0x1b
> > > > Code: 07 ff c8 89 43 48 eb 08 48 89 df e8 dc 95 44 00 4c 89 e6 48 89 df e8 a7 a5 44 00 5b 41 5c 5d c3 55 48 89 e5 66 66 66 66 90 eb 0c <8b> 50 10 39 56 10 7f 0c 48 8d 78 08 48 8b 07 48 85 c0 75 ec 48
> > > > RIP [<ffffffff8107bddb>] notifier_chain_register+0xb/0x2a
> > > > RSP <ffff880114139e68>
> > > > ---[ end trace e90d7053ad1a7a5b ]---
> > > >
> > > >
> > > > This script replicates the bug.
> > > > (it usually oopses after just a few loops)
> > > >
> > > > #!/bin/sh
> > > > while [ 1 ];
> > > > do
> > > > modprobe ip_vs_ftp
> > > > modprobe -r ip_vs_ftp
> > > > done
> > > >
> > > > Looks like something isn't getting cleaned up on module exit
> > > > that we fall over when we encounter it next time it gets loaded ?
> > >
> > > Thanks Dave, I will look into this.
> >
> > Hi Dave,
> >
> > I'm not having much luck reproducing this in KVM.
> > I will try this evening on real hardware.
> >
> > Just to make sure we are testing the same thing, are you using Linus's tree?
>
> One unregister_netdevice_notifier(&ip_vs_dst_notifier);
> is missing in ip_vs_control_cleanup for sure.
Like this?
>From 840edfcc48e5b98d928ee9d66def761a808945b3 Mon Sep 17 00:00:00 2001
From: Simon Horman <horms@...ge.net.au>
Date: Thu, 19 May 2011 16:54:26 +0900
Subject: [PATCH] IPVS: Free resources on module removal
Cc: Julian Anastasov <ja@....bg>
Reported-by: Dave Jones <davej@...hat.com>
Signed-off-by: Simon Horman <horms@...ge.net.au>
---
net/netfilter/ipvs/ip_vs_ctl.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
index 37890f2..9b9039b 100644
--- a/net/netfilter/ipvs/ip_vs_ctl.c
+++ b/net/netfilter/ipvs/ip_vs_ctl.c
@@ -3774,6 +3774,7 @@ err_sock:
void ip_vs_control_cleanup(void)
{
EnterFunction(2);
+ unregister_netdevice_notifier(&ip_vs_dst_notifier);
ip_vs_genl_unregister();
nf_unregister_sockopt(&ip_vs_sockopts);
LeaveFunction(2);
--
1.7.4.4
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists