[prev in list] [next in list] [prev in thread] [next in thread]
List: proftpd-committers
Subject: [ProFTPD-committers] [Bug 2821] New: issues with LIST command when
From: bugzilla-daemon () horde ! net
Date: 2006-07-29 1:17:10
Message-ID: bug-2821-5 () http ! bugs ! proftpd ! org/
[Download RAW message or body]
http://bugs.proftpd.org/show_bug.cgi?id=2821
Summary: issues with LIST command when there are a large number
of files and with using globing
Product: ProFTPD
Version: 1.2.10
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: mod_ls
AssignedTo: proftp-committers@lists.sourceforge.net
ReportedBy: z_gerg@yahoo.com
I've run into the following issues when sending a LIST request to
proftpd
1) As the file list gets larger there is a noticeable long delay
between when the last data block that has the last file name is
sent and when the response 226 is sent.
2) When using globing in the list command, lists greater then 99999
are not fully sent. Max number of files names in a list seems to be
99998 (+/-). Under a rare case (that I can't seem to figure out how
to reproduce reliably) the total number sent was 99998, but it had
skipped over some files. Normally I see the list being sent in the
order the files were created: completed_000000, completed_000001,
completed_000003 ... completed_99997. But in this rare case I see
completed_000000, completed_000001, completed_000002,
completed_000005, completed_000006, ... completed_109999 where
other files are skipped through out the list.
My main testing was done using an ftp client that was written using
libCurl and is run on windows 2000 connecting to protftpd 1.2.10
running on suse enterprise 9 Linux 2.6.5-7.97 box. Since my main setup
still uses (and all my timing collection was done with) profptd
1.2.10, I'm reporting against that version. However I did try some
testing with protfd 1.3.0 and experienced similar issues. I also did
minimal testing with proftpd running on Red Hat 4 which also had
similar issues.
To confirm it was not the ftp client I was using, I also tried using the
standard ftp client on windows 2000, standar ftp client on my suse box (running
locally), and standard ftp client running on remote linux box. All had the
same issues. I also ran WireShark on the proftpd machine and looked
at the packets being sent to confirm that the issue was with
proftpd. Finally I repeated all the tests using all the mentioned
clients against vsftpd and saw no issues with vsftpd.
What I'm doing is sending the following ftp request:
LIST <path_to_files>/completed_*
The file names in the dir I'm trying to get a listing for have the
following naming convention
completed_nnnnnn
Where nnnnnn is from 000000 to 109999 (just so I can easily tell which
files are being sent and the order they are being sent).
Here are timings I collected. Basically I generated large number of
files (using the script listed at the end of this report) and then
sent the list command (as described above). I'm running on a 100Mbit
LAN. I used WireShark to collect the timings. I started at 30,000
files, as the delay for 20,000 or less files was under 1 second. The
"total time" is from the time that the list command was received until
the final response 226 was sent. As you can, see most of the total
time is waiting for the response 226 to be sent.
file | full list | total | delay from last data sent until
count | sent | time | Response 226 transfer complete
--------+-----------+----------+---------------------------------
30,000 | yes | 0:05.843 | 0:02.375
--------+-----------+----------+---------------------------------
50,000 | yes | 0:29.790 | 0:19.720
--------+-----------+----------+---------------------------------
70,000 | yes | 1:21.122 | 1:02.525
--------+-----------+----------+---------------------------------
90,000 | yes | 2:22.048 | 1:57.444
--------+-----------+----------+---------------------------------
110,000 | *no | 2:55.192 | 2:24.055
--------+-----------+----------+---------------------------------
* if I change the request to
LIST <path_to_files>/
I.e. no globing, then the entire list is sent but still has the
delays. If NLST is used then no delays. But NLST still has the problem
when globing is used; not all the files are sent when list is > 99999.
script to generate the file names (note: the max count and idx should
be 999999, but there is no check against larger numbers).
#!/bin/sh
idx=0
zeros="000000"
if [ "$1" = "" ] ; then
echo "usage: $0 count [idx]"
echo " count: number of file names to generate"
echo " idx (optional): index to start at"
exit
fi
cnt=$1
if [ "$2" != "" ] ; then
idx=$2
cnt=$[$cnt + $idx]
fi
dt=`date +%s`
timeStamp=`date +%s%N`
while test $idx -lt $cnt ; do
zCnt=$[${#zeros} - ${#idx}]
touch "completed_${zeros:0:$zCnt}${idx}"
idx=$[$idx + 1]
done
--
Configure bugmail: http://bugs.proftpd.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
ProFTPD Committers Mailing List
proftpd-committers@proftpd.org
https://lists.sourceforge.net/lists/listinfo/proftp-committers
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic