[
https://issues.apache.org/jira/browse/NET-160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12605199#action_12605199
]
thuang edited comment on NET-160 at 6/15/08 11:44 PM:
------------------------------------------------------------
I have this same problem when trying to get the file listing from the remote
server. The remote directory contains ~200 files. I am using the
2.0.0-SNAPSHOT, and the PrintCommandListener dumps the server command as below
...
SYST
215 UNIX Type: L8
PORT 128,149,132,95,165,106
200 PORT command successful. Consider using PASV.
LIST
150 Here comes the directory listing.
<< hangs >>
The remote server is a Linux host and I am running my client on a Linux machine
as well. What is strange about this is the problem only happens when I try
running against this particular remote FTP server. The same client program
worked fine when running against my other FTP servers.
Here is the stacktrace after setting setSoTimeout(30000)
200 PORT command successful. Consider using PASV.
LIST
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:411)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:453)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:294)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:490)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:534)
at
org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:476)
at
org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2296)
at
org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2269)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2046)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2093)
at Test.getDataFiles(Test.java:33)
at Test.main(Test.java:59)
was (Author: thuang):
I have this same problem when trying to get the file listing from the
remote server. The remote directory contains ~200 files. I am using the
2.0.0-SNAPSHOT, and the PrintCommandListener dumps the server command as below
...
SYST
215 UNIX Type: L8
PORT 128,149,132,95,165,106
200 PORT command successful. Consider using PASV.
LIST
150 Here comes the directory listing.
<< hangs >>
The remote server is a Linux host and I am running my client on a Linux machine
as well. What is strange about this is the problem only happens when I try
running against this particular remote FTP server. The same client program
worked fine when running against my other FTP servers.
Here is the stacktrace after setting setSoTimeout(5000)
200 PORT command successful. Consider using PASV.
LIST
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:411)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:453)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:294)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:490)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:534)
at
org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:476)
at
org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2296)
at
org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2269)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2046)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2093)
at Test.getDataFiles(Test.java:33)
at Test.main(Test.java:59)
> FTP Client API Hangs - Attached Scenario.
> -----------------------------------------
>
> Key: NET-160
> URL: https://issues.apache.org/jira/browse/NET-160
> Project: Commons Net
> Issue Type: Bug
> Affects Versions: 1.4
> Environment: Suse Enterprise Linux 9.0, Intel
> Reporter: Lvenkataraman
>
> FTP client hangs with the following error. Here is the truss output. The
> client hangs indefinitely and no work is being done other than this error
> when you truss the process. I use Java 1.5 to run this. We wrote a
> long-running ftp daemon and this happens after 20-23 hours of continuous
> running.
> Here is the code to pull files from the ftp server. This one lists files that
> are received after this particular "incal" time (currently it lists but the
> intention is to implement an incremental download). We initially thought
> doing periodic noop would keep the client alive by sending dummy commands to
> the server. But we found this probelm still occurs.
> public void ListIncrementalFiles (String directory, Calendar incal)
> {
> try
> {
> FTPFile[] files = listFiles(directory);
>
> int total_files = 0;
>
> System.out.println("FileName\tFileSize\t\tDate Time
> Stamp");
> for (int i = 0; i < files.length; i++)
> {
>
>
> FTPFile file = files[i];
> if ((i % 1000) == 0)
> {
> System.out.println("noop
> occurred at this instance---> " + i + "\n");
> noop();
> }
>
> if (file.isFile())
> {
> Calendar c =
> file.getTimestamp();
>
>
> if (c.after(incal) ||
> c.equals(incal))
> {
>
>
> System.out.println(file.getName() + "\t" + file.getSize() + "\t\t" +
> c.getTime());
> total_files++;
> }
> }
>
> }
> System.out.println("Total Files in the listing ----> "
> + total_files);
> }
> catch (Exception e)
> {
> System.out.println("FTP Getfiles exception occured");
> e.printStackTrace();
> }
>
> }
> ---------------------------------------------------------------------------------------------------------------------------------Truss
> output begins--------------------------------------------------------
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /6: lwp_cond_wait(0x00035F08, 0x00035EF0, 0xB477FBE0, 0) Err#62 ETIME
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /9: lwp_park(0x00000000, 0) (sleeping...)
> /3: lwp_cond_wait(0x000B77C0, 0x000B77A8, 0x00000000, 0) (sleeping...)
> /8: lwp_cond_wait(0x0014A908, 0x0014A8F0, 0x00000000, 0) (sleeping...)
> /10: lwp_cond_wait(0x000366E8, 0x000366D0, 0x00000000, 0) (sleeping...)
> /1: pollsys(0x00000000, 0, 0xFFBFEB60, 0x00000000) (sleeping...)
> /11: lwp_cond_wait(0x00036778, 0x00036760, 0x00000000, 0) (sleeping...)
> /4: lwp_cond_wait(0x000B77C0, 0x000B77A8, 0x00000000, 0) (sleeping...)
> /12: lwp_cond_wait(0x00036778, 0x00036760, 0x00000000, 0) (sleeping...)
> /2: lwp_cond_wait(0x000B77C0, 0x000B77A8, 0x00000000, 0) (sleeping...)
> /7: lwp_cond_wait(0x00149F98, 0x00149F80, 0x00000000, 0) (sleeping...)
> /5: lwp_cond_wait(0x000B77C0, 0x000B77A8, 0x00000000, 0) (sleeping...)
> /13: lwp_cond_wait(0x00034958, 0x00034940, 0x00000000, 0) (sleeping...)
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /6: lwp_cond_wait(0x00035F08, 0x00035EF0, 0xB477FBE0, 0) Err#62 ETIME
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /6: lwp_cond_wait(0x00035F08, 0x00035EF0, 0xB477FBE0, 0) Err#62 ETIME
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /6: lwp_cond_wait(0x00035F08, 0x00035EF0, 0xB477FBE0, 0) Err#62 ETIME
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /6: lwp_cond_wait(0x00035F08, 0x00035EF0, 0xB477FBE0, 0) Err#62 ETIME
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /6: lwp_cond_wait(0x00035F08, 0x00035EF0, 0xB477FBE0, 0) Err#62 ETIME
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /6: lwp_cond_wait(0x00035F08, 0x00035EF0, 0xB477FBE0, 0) Err#62 ETIME
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> /14: pollsys(0x00000000, 0, 0xB3F7FC10, 0x00000000) = 0
> ------------------------------------------------------------------------------------------Truss
> output
> ends-------------------------------------------------------------------------------------------
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.