[jcifs] mysterious timeout

Newell, Gary gary.newell at intel.com
Fri Dec 12 20:04:46 GMT 2008


Hi -

I'm getting a timeout error and I'm looking for help understanding what is going on.  The code in question is running in a servlet (in tomcat on a windows server 2003) and as each new user initially accesses the WEB site the code attempts to open a series of files with ACL's attached using the users NTLM credentials.  The files are in a local share and are referenced via address 127.0.0.1.  The set of openable files determines which datasets this user is allowed access.  Specifically, I use SmbFile.isDirectory() to 'touch' each privilege file.  This methodology has worked fine for about 2 months.

Recently, I'm now getting timeout errors with each file access.  I get the correct result (file access denied vs. file access okay), but I now wait ~1 minute per file access (ie I don't get my answer until after the timeout occurs).  It appears to try the file access twice.

The WEB site is located behind a firewall, but the firewall administrators have verified that ports 139 and 445 are not blocked.

Any pointers would be greatly appreciated.

Thank you!

Gary


There is a sample trace-back:
jcifs.smb.SmbException: Connection timeout
jcifs.util.transport.TransportException: Connection timeout
 at jcifs.util.transport.Transport.connect(Transport.java:178)
 at jcifs.smb.SmbTransport.connect(SmbTransport.java:293)
 at jcifs.smb.SmbTree.treeConnect(SmbTree.java:139)
 at jcifs.smb.SmbTree.send(SmbTree.java:64)
 at jcifs.smb.SmbTransport.getDfsReferrals(SmbTransport.java:669)
 at jcifs.smb.Dfs.getTrustedDomains(Dfs.java:64)
 at jcifs.smb.Dfs.resolve(Dfs.java:146)
 at jcifs.smb.SmbFile.doConnect(SmbFile.java:841)
 at jcifs.smb.SmbFile.connect(SmbFile.java:893)
 at jcifs.smb.SmbFile.connect0(SmbFile.java:819)
 at jcifs.smb.SmbFile.queryPath(SmbFile.java:1272)
 at jcifs.smb.SmbFile.exists(SmbFile.java:1354)
 at jcifs.smb.SmbFile.isDirectory(SmbFile.java:1427)
 at com.intel.f11litho.WQT300mmReg.WQT300mmRegPrivilegeChecker.doGet(WQT300mmRegPrivilegeChecker.java:489)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
 at java.lang.Thread.run(Unknown Source)

 at jcifs.smb.SmbTransport.connect(SmbTransport.java:295)
 at jcifs.smb.SmbTree.treeConnect(SmbTree.java:139)
 at jcifs.smb.SmbTree.send(SmbTree.java:64)
 at jcifs.smb.SmbTransport.getDfsReferrals(SmbTransport.java:669)
 at jcifs.smb.Dfs.getTrustedDomains(Dfs.java:64)
 at jcifs.smb.Dfs.resolve(Dfs.java:146)
 at jcifs.smb.SmbFile.doConnect(SmbFile.java:841)
 at jcifs.smb.SmbFile.connect(SmbFile.java:893)
 at jcifs.smb.SmbFile.connect0(SmbFile.java:819)
 at jcifs.smb.SmbFile.queryPath(SmbFile.java:1272)
 at jcifs.smb.SmbFile.exists(SmbFile.java:1354)
 at jcifs.smb.SmbFile.isDirectory(SmbFile.java:1427)
 at com.intel.f11litho.WQT300mmReg.WQT300mmRegPrivilegeChecker.doGet(WQT300mmRegPrivilegeChecker.java:489)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
 at java.lang.Thread.run(Unknown Source)
doConnect: 0.0.0.0<00>/127.0.0.1
queryPath: \Priv AMR\empty.txt
java.net.ConnectException: Connection timed out: connect
 at java.net.PlainSocketImpl.socketConnect(Native Method)
 at java.net.PlainSocketImpl.doConnect(Unknown Source)
 at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
 at java.net.PlainSocketImpl.connect(Unknown Source)
 at java.net.SocksSocketImpl.connect(Unknown Source)
 at java.net.Socket.connect(Unknown Source)
 at java.net.Socket.connect(Unknown Source)
 at java.net.Socket.<init>(Unknown Source)
 at java.net.Socket.<init>(Unknown Source)
 at jcifs.smb.SmbTransport.ssn139(SmbTransport.java:181)
 at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:243)
 at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:308)
 at jcifs.util.transport.Transport.run(Transport.java:240)
 at java.lang.Thread.run(Unknown Source)
jcifs.smb.SmbException: Connection timeout
jcifs.util.transport.TransportException: Connection timeout
 at jcifs.util.transport.Transport.connect(Transport.java:178)
 at jcifs.smb.SmbTransport.connect(SmbTransport.java:293)
 at jcifs.smb.SmbTree.treeConnect(SmbTree.java:139)
 at jcifs.smb.SmbTree.send(SmbTree.java:64)
 at jcifs.smb.SmbTransport.getDfsReferrals(SmbTransport.java:669)
 at jcifs.smb.Dfs.getTrustedDomains(Dfs.java:64)
 at jcifs.smb.Dfs.resolve(Dfs.java:146)
 at jcifs.smb.SmbFile.resolveDfs(SmbFile.java:667)
 at jcifs.smb.SmbFile.send(SmbFile.java:719)
 at jcifs.smb.SmbFile.queryPath(SmbFile.java:1300)
 at jcifs.smb.SmbFile.exists(SmbFile.java:1354)
 at jcifs.smb.SmbFile.isDirectory(SmbFile.java:1427)
 at com.intel.f11litho.WQT300mmReg.WQT300mmRegPrivilegeChecker.doGet(WQT300mmRegPrivilegeChecker.java:489)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
 at java.lang.Thread.run(Unknown Source)

 at jcifs.smb.SmbTransport.connect(SmbTransport.java:295)
 at jcifs.smb.SmbTree.treeConnect(SmbTree.java:139)
 at jcifs.smb.SmbTree.send(SmbTree.java:64)
 at jcifs.smb.SmbTransport.getDfsReferrals(SmbTransport.java:669)
 at jcifs.smb.Dfs.getTrustedDomains(Dfs.java:64)
 at jcifs.smb.Dfs.resolve(Dfs.java:146)
 at jcifs.smb.SmbFile.resolveDfs(SmbFile.java:667)
 at jcifs.smb.SmbFile.send(SmbFile.java:719)
 at jcifs.smb.SmbFile.queryPath(SmbFile.java:1300)
 at jcifs.smb.SmbFile.exists(SmbFile.java:1354)
 at jcifs.smb.SmbFile.isDirectory(SmbFile.java:1427)
 at com.intel.f11litho.WQT300mmReg.WQT300mmRegPrivilegeChecker.doGet(WQT300mmRegPrivilegeChecker.java:489)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
 at java.lang.Thread.run(Unknown Source)
Trans2QueryPathInformation[command=SMB_COM_TRANSACTION2,received=false,errorCode=0,flags=0x0018,flags2=0xC003,signSeq=0,tid=12295,pid=40083,uid=20483,mid=133,wordCount=15,byteCount=47,totalParameterCount=46,totalDataCount=0,maxParameterCount=2,maxDataCount=40,maxSetupCount=0,flags=0x00,timeout=0,parameterCount=46,parameterOffset=66,parameterDisplacement=0,dataCount=0,dataOffset=112,dataDisplacement=0,setupCount=1,pad=1,pad1=0,informationLevel=0x101,filename=\Priv AMR\empty.txt]
New data read: Transport2[0.0.0.0<00>/127.0.0.1:445]
00000: FF 53 4D 42 32 00 00 00 00 98 03 C0 00 00 00 00  |ÿSMB2......À....|
00010: 00 00 00 00 00 00 00 00 07 30 93 9C 03 50 85 00  |.........0...P..|

Trans2QueryPathInformationResponse[command=SMB_COM_TRANSACTION2,received=false,errorCode=0,flags=0x0098,flags2=0xC003,signSeq=0,tid=12295,pid=40083,uid=20483,mid=133,wordCount=10,byteCount=45,totalParameterCount=2,totalDataCount=40,parameterCount=2,parameterOffset=56,parameterDisplacement=0,dataCount=40,dataOffset=60,dataDisplacement=0,setupCount=0,pad=1,pad1=2]



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


More information about the jcifs mailing list