commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dan Newmarch (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (NET-160) FTP Client API Hangs - Attached Scenario.
Date Thu, 25 Oct 2007 05:53:50 GMT

    [ https://issues.apache.org/jira/browse/NET-160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12537502
] 

dann edited comment on NET-160 at 10/24/07 10:52 PM:
-------------------------------------------------------------

Hi,
I would be interested in revisiting this issue as I appear to have a very similar issue occurring.
 The code I am writing is designed to constantly poll a series of ftp servers and download
files of interest as they are discovered.  The issue I have been having is that on roughly
a 24 hour basis, the process will hang for no apparent reason.  One difference with my issue
is that the clients are running on Windows and are connecting to a Microsoft FTP server. 
I have listed two separate stack traces for the issue below; as you can see the issue occurs
on different calls to FTPClient, but seems to consistently break in the socketAccept method.
 It's also worth noting that this was run using 1.4.1 version of the library, however I tried
a 2.0 snapshot and it also hung.

  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (null)
  [3] java.net.ServerSocket.implAccept (null)
  [4] java.net.ServerSocket.accept (null)
  [5] org.apache.commons.net.ftp.FTPClient._openDataConnection_ (FTPClient.java:502)
  [6] org.apache.commons.net.ftp.FTPClient.retrieveFile (FTPClient.java:1,285)

  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (null)
  [3] java.net.ServerSocket.implAccept (null)
  [4] java.net.ServerSocket.accept (null)
  [5] org.apache.commons.net.ftp.FTPClient._openDataConnection_ (FTPClient.java:502)
  [6] org.apache.commons.net.ftp.FTPClient.initiateListParsing (FTPClient.java:2,390)
  [7] org.apache.commons.net.ftp.FTPClient.initiateListParsing (FTPClient.java:2,364)
  [8] org.apache.commons.net.ftp.FTPClient.listFiles (FTPClient.java:2,141)

Thanks in advance for any advice,
Dan

      was (Author: dann):
    Hi,
I would be interested in revisiting this issue as I appear to have a very similar issue occurring.
 The code I am writing is designed to constantly poll a series of ftp servers and download
files of interest as they are discovered.  The issue I have been having is that on roughly
a 24 hour basis, the process will hang for no apparent reason.  One difference with my issue
is that the clients are running on Windows and are connecting to a Microsoft FTP server. 
I have listed two separate stack traces for the issue below; as you can see the issue occurs
on different calls to FTPClient, but seems to consistently break in the acceptSocket method.
 It's also worth noting that this was run using 1.4.1 version of the library, however I tried
a 2.0 snapshot and it also hung.

  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (null)
  [3] java.net.ServerSocket.implAccept (null)
  [4] java.net.ServerSocket.accept (null)
  [5] org.apache.commons.net.ftp.FTPClient._openDataConnection_ (FTPClient.java:502)
  [6] org.apache.commons.net.ftp.FTPClient.retrieveFile (FTPClient.java:1,285)

  [1] java.net.PlainSocketImpl.socketAccept (native method)
  [2] java.net.PlainSocketImpl.accept (null)
  [3] java.net.ServerSocket.implAccept (null)
  [4] java.net.ServerSocket.accept (null)
  [5] org.apache.commons.net.ftp.FTPClient._openDataConnection_ (FTPClient.java:502)
  [6] org.apache.commons.net.ftp.FTPClient.initiateListParsing (FTPClient.java:2,390)
  [7] org.apache.commons.net.ftp.FTPClient.initiateListParsing (FTPClient.java:2,364)
  [8] org.apache.commons.net.ftp.FTPClient.listFiles (FTPClient.java:2,141)

Thanks in advance for any advice,
Dan
  
> 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.


Mime
View raw message