All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roberto Nibali <ratz@tac.ch>
To: Patrick McHardy <kaber@trash.net>
Cc: Netfilter Developers <netfilter-devel@lists.netfilter.org>,
	Pablo Neira <pablo@eurodev.net>
Subject: Re: [PATCH] update raw patch in POM [2.4.x]
Date: Tue, 21 Jun 2005 16:17:27 +0200	[thread overview]
Message-ID: <42B82177.5010101@tac.ch> (raw)
In-Reply-To: <42B81D75.8090205@trash.net>

Hello Patrick,

Thanks for looking into this. I've added a 2.4.x into the subject because it
seems people forget it sometimes :)

>>>If the module gets unloaded, ip_conntrack_untracked refcount isn't 
>>>decreased, it's still 1. So destroy() is never called. In that case it 
>>>should be really easy to trigger on my slow laptop ;->.
>>
>>How do you explain the BUG() being triggered then?
> 
> Pablo mentioned to me in private mail that he believes the reason
> is packets holding references to ip_conntrack_untracked on module
> removal. I agree, and this patch should fix it. Roberto, could
> you please try it and tell me if it helps?

I already did. Here's an excerpt of an earlier email in this thread regarding
this patch:

>--- linux-2.4.orig/net/ipv4/netfilter/ip_conntrack_core.c	2005-06-15
>> 23:16:43.000000000 +0200
>> +++ linux-2.4/net/ipv4/netfilter/ip_conntrack_core.c	2005-06-17
>> 20:44:18.000000000 +0200
>> @@ -1391,6 +1391,8 @@
>>  		schedule();
>>  		goto i_see_dead_people;
>>  	}
>> +	while (atomic_read(&ip_conntrack_untracked.ct_general.use) != 1)
>> +		schedule();
>>
>>  	kmem_cache_destroy(ip_conntrack_cachep);
>>  	vfree(ip_conntrack_hash);


This results in an endless loop when calling rmmod ip_conntrack. lsmod shows
(deleted) but the process is in D state. No oops of course and no hang.

But I cannot remove the ip_conntrack kernel module anymore. It's "stuck".

> diff --git a/net/ipv4/netfilter/ip_conntrack_core.c b/net/ipv4/netfilter/ip_conntrack_core.c
> --- a/net/ipv4/netfilter/ip_conntrack_core.c
> +++ b/net/ipv4/netfilter/ip_conntrack_core.c
> @@ -1111,7 +1111,9 @@ void ip_conntrack_cleanup(void)
>  		schedule();
>  		goto i_see_dead_people;
>  	}
> -
> +	/* wait until all references to ip_conntrack_untracked are dropped */
> +	while (atomic_read(&ip_conntrack_untracked.ct_general.use) > 1)
> +		schedule();
>  	kmem_cache_destroy(ip_conntrack_cachep);
>  	kmem_cache_destroy(ip_conntrack_expect_cachep);
>  	free_conntrack_hash();

This is not a pristine 2.4.x kernel source you diffed against, rather a 2.6.x
one. The ip_conntrack_expect_cachep kmem cache was not used in 2.4.x AFAIK.

Do you want me to rerun the test for more precise statements?

Best regards,
Roberto Nibali, ratz
-- 
-------------------------------------------------------------
addr://Rathausgasse 31, CH-5001 Aarau  tel://++41 62 823 9355
http://www.terreactive.com             fax://++41 62 823 9356
-------------------------------------------------------------
terreActive AG                       Wir sichern Ihren Erfolg
-------------------------------------------------------------

  reply	other threads:[~2005-06-21 14:17 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-07 11:06 [PATCH] update raw patch in POM Roberto Nibali
2005-06-07 14:37 ` Roberto Nibali
2005-06-07 22:55   ` Pablo Neira
2005-06-08  8:23     ` Roberto Nibali
2005-06-08 12:37       ` Pablo Neira
2005-06-14 15:27         ` Roberto Nibali
2005-06-20  8:18           ` Roberto Nibali
2005-06-20  9:07             ` Roberto Nibali
2005-06-20 10:41             ` SOLVED (was: Re: [PATCH] update raw patch in POM) Roberto Nibali
2005-06-20 11:01               ` Jozsef Kadlecsik
2005-06-20 11:03                 ` SOLVED Roberto Nibali
2005-06-20 11:04                   ` SOLVED Jozsef Kadlecsik
2005-06-20 10:49             ` [PATCH] update raw patch in POM Jan Engelhardt
2005-06-20 11:03               ` Roberto Nibali
2005-06-21  0:34             ` Thomas Graf
2005-06-21  0:39               ` Thomas Graf
2005-06-21  6:46                 ` Roberto Nibali
2005-06-21  8:59                   ` Pablo Neira
2005-06-21  9:08                     ` Jozsef Kadlecsik
2005-06-21 11:18                   ` Thomas Graf
2005-06-21  0:51               ` Pablo Neira
2005-06-21 11:13                 ` Thomas Graf
2005-06-21 14:00                   ` Patrick McHardy
2005-06-21 14:17                     ` Roberto Nibali [this message]
2005-06-21 14:47                       ` [PATCH] update raw patch in POM [2.4.x] Patrick McHardy
2005-06-21 15:15                         ` Roberto Nibali
2005-06-21 15:32                           ` Patrick McHardy
2005-06-22  9:26                             ` Roberto Nibali
2005-06-22  7:04                           ` Jozsef Kadlecsik
2005-06-22  9:10                             ` Roberto Nibali
2005-06-22  9:19                               ` Jozsef Kadlecsik
2005-06-22  9:27                                 ` Roberto Nibali
2005-06-21 21:50                     ` [PATCH] update raw patch in POM Thomas Graf
2005-06-22  0:32                       ` Patrick McHardy
2005-06-22  0:52                         ` Thomas Graf
2005-06-22  3:24                           ` Pablo Neira
2005-06-22  3:55                             ` Patrick McHardy
2005-06-22  5:48                               ` Roberto Nibali
2005-06-22 11:39                               ` Roberto Nibali
2005-06-22 18:38                                 ` Patrick McHardy
2005-06-27  6:36                                   ` Roberto Nibali
2005-06-27 10:57                                     ` Patrick McHardy
2005-06-27 12:07                                       ` Roberto Nibali
2005-06-27 12:55                                         ` Patrick McHardy
2005-06-27 13:53                                           ` Roberto Nibali
2005-06-27 15:49                                             ` Patrick McHardy
2005-06-28  6:02                                               ` Roberto Nibali
2005-06-27  8:50                                   ` Roberto Nibali

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=42B82177.5010101@tac.ch \
    --to=ratz@tac.ch \
    --cc=kaber@trash.net \
    --cc=netfilter-devel@lists.netfilter.org \
    --cc=pablo@eurodev.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.