Bug?: ip_conntrack

Xuan Baldauf (technik--lkml@exmail.de)
Tue, 06 Jun 2000 00:56:10 +0200


Hello, maybe this bug is already known, but just in case...:

while playing around with ip_conntrack.o of linux2.4.0-test1-ac8, I
noticed following:

> rmmod ip_conntrack

would take about 10 minutes (after masquerading was used). I assumed
that it will never quit, but it did. Looking into the kernel source I
found at net/ipv4/netfilter/ip_conntrack_core.c:947:

void ip_conntrack_cleanup(void)
{
#ifdef CONFIG_SYSCTL
unregister_sysctl_table(ip_conntrack_sysctl_header);
#endif

i_see_dead_people:
ip_ct_selective_cleanup(kill_all, NULL);
if (atomic_read(&ip_conntrack_count) != 0) {
schedule();
goto i_see_dead_people;
}

kmem_cache_destroy(ip_conntrack_cachep);
vfree(ip_conntrack_hash);
nf_unregister_sockopt(&so_getorigdst);
}

It seems that this loop "i_see_dead_people" is intended, but was it
intended to last so long (10 minutes)? "rmmod" took all the CPU time
(like a process which was under full workload). I assume that this
loop waits for all masquerading entries to be cleared, but is it
intended to do nothing to make the clearing faster (set the timeout to
0 for example)?

Xuân. :o)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/