[jcifs] mysterious timeout

Michael B Allen ioplex at gmail.com
Fri Dec 12 20:33:05 GMT 2008


It's trying to resolve DFS domains but for some reason it cannot
contact the DC. Try setting:

  jcifs.smb.client.dfs.disabled=true

Mike

On Fri, Dec 12, 2008 at 3:04 PM, Newell, Gary <gary.newell at intel.com> wrote:
> 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]
>
>
>



-- 
Michael B Allen
PHP Active Directory SPNEGO SSO
http://www.ioplex.com/


More information about the jcifs mailing list