[jcifs] Another Transport Thread issue

Dalton, Tim Daltontf at AGEDWARDS.com
Wed May 10 20:41:31 GMT 2006


Before I start digging deeper into the code, I wanted to run this by the
mailing list:

We are using jcifs 1.2.7 in an application that has many threads
communicating LAN printers. What we seeing is excessive Thread creation.
We see exceptions like below in the stdout which looks to be related:


java.net.ConnectException: Connection timed out
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
	at
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
	at java.net.Socket.connect(Socket.java:452)
	at java.net.Socket.connect(Socket.java:402)
	at java.net.Socket.<init>(Socket.java:309)
	at java.net.Socket.<init>(Socket.java:124)
	at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:241)
	at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:301)
	at jcifs.util.transport.Transport.run(Transport.java:217)
	at java.lang.Thread.run(Thread.java:534)
java.net.ConnectException: Connection timed out
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
	at
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
	at java.net.Socket.connect(Socket.java:452)
	at java.net.Socket.connect(Socket.java:402)
	at java.net.Socket.<init>(Socket.java:309)
	at java.net.Socket.<init>(Socket.java:124)
	at jcifs.smb.SmbTransport.ssn139(SmbTransport.java:178)
	at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:236)
	at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:301)
	at jcifs.util.transport.Transport.run(Transport.java:217)
	at java.lang.Thread.run(Thread.java:534)

When take a thread dump see many Threads assign the same name
(indicating they are running against the same Transport object):

"Transport103" daemon prio=1 tid=0x08735210 nid=0x30e1 waiting for
monitor entry [6b9f0000..6b9f08c8]
	at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:227)
	- waiting to lock <0x47320950> (a [B)
	at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:298)
	at jcifs.util.transport.Transport.run(Transport.java:217)
	at java.lang.Thread.run(Thread.java:534)

"Transport103" daemon prio=1 tid=0x086a98a8 nid=0x2d63 waiting for
monitor entry [6718c000..6718c8c8]
	at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:227)
	- waiting to lock <0x47320950> (a [B)
	at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:298)
	at jcifs.util.transport.Transport.run(Transport.java:217)
	at java.lang.Thread.run(Thread.java:534)

"Transport103" daemon prio=1 tid=0x08734d18 nid=0x2ab3 waiting for
monitor entry [5ce27000..5ce278c8]
	at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:227)
	- waiting to lock <0x47320950> (a [B)
	at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:298)
	at jcifs.util.transport.Transport.run(Transport.java:217)
	at java.lang.Thread.run(Thread.java:534)

"Transport103" daemon prio=1 tid=0x0875a4a8 nid=0x2733 waiting for
monitor entry [606d8000..606d88c8]
	at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:227)
	- waiting to lock <0x47320950> (a [B)
	at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:298)
	at jcifs.util.transport.Transport.run(Transport.java:217)
	at java.lang.Thread.run(Thread.java:534)

"Transport103" daemon prio=1 tid=0x08733ff0 nid=0x2412 waiting for
monitor entry [6a7cc000..6a7cc8c8]
	at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:227)
	- waiting to lock <0x47320950> (a [B)
	at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:298)
	at jcifs.util.transport.Transport.run(Transport.java:217)
	at java.lang.Thread.run(Thread.java:534)

"Transport103" daemon prio=1 tid=0x08732f68 nid=0x208d waiting for
monitor entry [6b96f000..6b96f8c8]
	at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:227)
	- waiting to lock <0x47320950> (a [B)
	at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:298)
	at jcifs.util.transport.Transport.run(Transport.java:217)
	at java.lang.Thread.run(Thread.java:534)

And many more all waiting for this thread:

"Transport103" daemon prio=1 tid=0x081f5a78 nid=0x308d runnable
[6a8ce000..6a8ce8c8]
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
	- locked <0x46ef1c10> (a java.net.PlainSocketImpl)
	at
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
	at java.net.Socket.connect(Socket.java:452)
	at java.net.Socket.connect(Socket.java:402)
	at java.net.Socket.<init>(Socket.java:309)
	at java.net.Socket.<init>(Socket.java:124)
	at jcifs.smb.SmbTransport.ssn139(SmbTransport.java:178)
	at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:236)
	- locked <0x47320950> (a [B)
	at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:301)
	at jcifs.util.transport.Transport.run(Transport.java:217)
	at java.lang.Thread.run(Thread.java:534)

It seems that the session is too eager to create threads to connect. Has
anyone else seen this ? 

Thanks
Tim 


-------------------------------------------------------------------------------------
A.G. Edwards & Sons' outgoing and incoming e-mails are electronically
archived and subject to review and/or disclosure to someone other 
than the recipient.

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

-------------- next part --------------
HTML attachment scrubbed and removed


More information about the jcifs mailing list