Uploaded image for project: 'Commons Net'
  1. Commons Net
  2. NET-160

FTP Client API Hangs - Attached Scenario.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • 1.4
    • None
    • FTP
    • None
    • Suse Enterprise Linux 9.0, Intel

    Description

      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------------------------------------------------------------------------------------------

      Attachments

        1. __getReply
          3 kB
          Jeff Cliff
        2. Util.java
          16 kB
          Jeff Cliff

        Activity

          People

            Unassigned Unassigned
            lvenkataraman Lvenkataraman
            Votes:
            4 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: