PROBLEM:

From: 董董侃
Date: Thu Aug 31 2006 - 02:51:40 EST


Hi,
I has found a bug that is caused by dead lock on ip_nat_ftp module
in linux kernel 2.4.27 on SMP machine.
My workaround of testing is as following:
I create a router by iptables ,FTP client and FTP server for testing.
client machine ip: 192.168.1.3/32 ,gateway 192.168.1.10/32
server machine ip: 192.168.2.3/32,gateway 192.168.2.10/32
router machine with tow NICs,
eth0:192.168.1.10/32
eth1:192.168.2.10/32
Testing flow:
on router:
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_nat_ftp
iptables -t nat -A POSTROUTING -s 192.168.1.3 -p tcp --dport 21
-o eth1 -j SNAT --to-source 192.168.2.10
on client:
I use a benchmark tool to create ftp sessions with the remote
FTP server.In the session,includes ftp control connections and data
connections.The sending rate is about 500 sessions/10s.
When the num of conntrack is up to 15000,I rmmod the ip_nat_ftp
and ip_conntrack _ftp modules by typing "modprobe -r ip_nat_ftp"
command and then the kernel is dead locked.

I think that the dead lock is caused by ip_conntrack_lock and
ip_nat_lock.When I rmmod the ip_nat_ftp module, the function flow is
as following:
ip_nat_helper_unregister->ip_ct_selective_cleanup->get_next_corpse(ip_conntrack_lock)
->kill_helper(ip_nat_lock)
But the kernel there is another flow is as following:
ip_nat_fn(ip_nat_lock)->ip_nat_setup_info->ip_conntrack_alter_reply(ip_conntrack_lock)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/