Issue Details (XML | Word | Printable)

Key: NET-31
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: ThomasGt
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Commons Net

[net] Freeze during FTP connect

Created: 06/Jan/06 06:14 PM   Updated: 29/Jan/08 03:33 PM
Return to search
Component/s: None
Affects Version/s: 1.4
Fix Version/s: 2.0

Time Tracking:
Not Specified

Environment:
Operating System: Linux
Platform: Other

Bugzilla Id: 38160
Resolution Date: 11/Nov/06 04:15 PM


 Description  « Hide
Several times a day a Java process open FTP connections (using Commons Net) and
some times (approximately twice a week) the process hang until I kill it.
By looking at the dump it seems the lock appears during the connection opening
but I have no clue why it happens.

Here are the information I have :

-------------------------------
FTP client :

  • OS "Red Hat Enterprise Linux ES release 3 (Taroon Update 2)"
  • Java j2sdk1.4.2_05

FTP server on windows

-------------------------------

Thread dump get through kill -3 on java process :

Full thread dump Java HotSpot(TM) Client VM (1.4.2_05-b04 mixed mode):

"Thread-1" daemon prio=1 tid=0x081e2cc0 nid=0x72c5 runnable [a926e000..a926e87c]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
at java.io.BufferedInputStream.read(BufferedInputStream.java:201)

  • locked <0xaadc0d80> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:66)
    at java.io.PushbackInputStream.read(PushbackInputStream.java:120)
    at
    org.apache.commons.net.io.FromNetASCIIInputStream.__read(FromNetASCIIInputStream.java:75)
    at
    org.apache.commons.net.io.FromNetASCIIInputStream.read(FromNetASCIIInputStream.java:170)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
  • locked <0xaadc0028> (a org.apache.commons.net.telnet.TelnetInputStream)
    at
    org.apache.commons.net.telnet.TelnetInputStream.__read(TelnetInputStream.java:114)
    at
    org.apache.commons.net.telnet.TelnetInputStream.run(TelnetInputStream.java:535)
    at java.lang.Thread.run(Thread.java:534)

"Signal Dispatcher" daemon prio=1 tid=0x0809c440 nid=0x72c5 waiting on condition
[0..0]

"Finalizer" daemon prio=1 tid=0x08097aa0 nid=0x72c5 in Object.wait()
[aabbd000..aabbd87c]
at java.lang.Object.wait(Native Method)

  • waiting on <0xab22b7a8> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
  • locked <0xab22b7a8> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=1 tid=0x08096ef8 nid=0x72c5 in Object.wait()
[aac3e000..aac3e87c]
at java.lang.Object.wait(Native Method)

  • waiting on <0xab22b810> (a java.lang.ref.Reference$Lock)
    at java.lang.Object.wait(Object.java:429)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
  • locked <0xab22b810> (a java.lang.ref.Reference$Lock)

"main" prio=1 tid=0x0805ba20 nid=0x72c5 in Object.wait() [bfff9000..bfff9eec]
at java.lang.Object.wait(Native Method)

  • waiting on <0xaad40000> (a [I)
    at java.lang.Object.wait(Object.java:429)
    at
    org.apache.commons.net.telnet.TelnetInputStream.read(TelnetInputStream.java:339)
  • locked <0xaad40000> (a [I)
    at
    org.apache.commons.net.telnet.TelnetInputStream.read(TelnetInputStream.java:466)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:220)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
  • locked <0xaad42108> (a java.io.BufferedInputStream)
    at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:408)
    at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:450)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)
  • locked <0xaad42988> (a java.io.InputStreamReader)
    at java.io.InputStreamReader.read(InputStreamReader.java:167)
    at java.io.BufferedReader.fill(BufferedReader.java:136)
    at java.io.BufferedReader.readLine(BufferedReader.java:299)
  • locked <0xaad42988> (a java.io.InputStreamReader)
    at java.io.BufferedReader.readLine(BufferedReader.java:362)
    at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:264)
    at org.apache.commons.net.ftp.FTP.connectAction(FTP.java:335)
    at org.apache.commons.net.ftp.FTPClient.connectAction(FTPClient.java:550)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:163)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:250)
    at com.cnetchannel.common.ftp.connect(ftp.java:405)
    at com.cnetchannel.dataSource.increment(dataSource.java:137)
    at com.cnetchannel.dataSource.main(dataSource.java:62)

"VM Thread" prio=1 tid=0x08095c98 nid=0x72c5 runnable

"VM Periodic Task Thread" prio=1 tid=0x0809ec70 nid=0x72c5 waiting on condition
"Suspend Checker Thread" prio=1 tid=0x0809bae8 nid=0x72c5 runnable



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Steve Cohen added a comment - 07/Jan/06 08:52 AM
Can you please supply relevant snippets of code?

Rory Winston added a comment - 11/Nov/06 04:15 PM
This should now be fixed in 2.0, now that FTPClient extends SocketClient directly.

Praveen Mangu added a comment - 29/Jan/08 03:33 PM
Hi,

I'm also facing the freeze during a call to connect() on Windows XP with J2SE
5.0:

Thread dump:
at java/lang/Object.wait(Native Method)
at java/lang/Object.wait(Object.java:199(Compiled Code))
at org/apache/commons/net/telnet/TelnetInputStream.read
(TelnetInputStream.java:313(Compiled Code))
at org/apache/commons/net/telnet/TelnetInputStream.read
(TelnetInputStream.java:466(Compiled Code))
at java/io/BufferedInputStream.read1(BufferedInputStream.java:265(Compiled
Code))
at java/io/BufferedInputStream.read(BufferedInputStream.java:324(Compiled
Code))
at java/io/FilterInputStream.read(FilterInputStream.java:113(Compiled Code))
at sun/nio/cs/StreamDecoder$ConverterSD.implRead(StreamDecoder.java:352
(Compiled Code))
at sun/nio/cs/StreamDecoder.read(StreamDecoder.java:250(Compiled Code))
at java/io/InputStreamReader.read(InputStreamReader.java:212(Compiled Code))
at java/io/BufferedReader.fill(BufferedReader.java:157(Compiled Code))
at java/io/BufferedReader.readLine(BufferedReader.java:320(Compiled Code))
at java/io/BufferedReader.readLine(BufferedReader.java:383(Compiled Code))
at org/apache/commons/net/ftp/FTP.__getReply(FTP.java:264(Compiled Code))
at org/apache/commons/net/ftp/FTP.connectAction(FTP.java:335(Compiled Code))
at org/apache/commons/net/ftp/FTPClient.connectAction(FTPClient.java:550)
at org/apache/commons/net/SocketClient.connect(SocketClient.java:163)

-------------------------------------------------------------------------------

Could you let me know when Commons Net 2.0 would be officially released?