Messages in this thread | | | Date | Thu, 31 Aug 2006 06:54:26 +0000 | From | "董董侃" <> | Subject | PROBLEM: |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |