lkml.org 
[lkml]   [2006]   [Sep]   [3]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSun, 3 Sep 2006 22:16:05 +0800
From"董董侃" <>
Subjectkernel BUG in ip_nat_helper_unregister at netfilter/ip_nat_helper.c
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)
-- 
VGER BF report: U 0.502111
-
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/

\
 
 \ /
  Last update: 2006-09-03 14:19    [from the cache]
©2003-2008