Obscure Connection Issue
Andre Guerlain <[email protected]> Mon, 8 Jun 2015 11:13:48 -0400
| Newsgroups | gmane.network.samba.java |
|---|---|
| Message-ID | <CALNQrp8vKgpEEXWt7J+e64cUQ781uNxEx9E1dL7oJ8mNg=EA0w@mail.gmail.com> |
--001a11c2e554b97581051803167c Content-Type: text/plain; charset=UTF-8 Hey all, This email is primarily to help everyone avoid a headache. We use JCIFS in some of our on-prem software for collecting logs, and one of our customers reported that they couldn't connect to a share on their Windows 2012 Server using JCIFS. I looked at the logs and found this exception: jcifs.smb.SmbException: Failed to connect: server.company.com/192.168.111.222 jcifs.util.transport.TransportException java.net.SocketException: Software caused connection abort: recv failed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at jcifs.util.transport.Transport.readn(Transport.java:29) at jcifs.smb.SmbTransport.peekKey(SmbTransport.java:388) at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:288) at jcifs.smb.SmbTransport.doConnect(SmbTransport.java:319) at jcifs.util.transport.Transport.run(Transport.java:241) at java.lang.Thread.run(Unknown Source) at jcifs.util.transport.Transport.run(Transport.java:258) at java.lang.Thread.run(Unknown Source) at jcifs.smb.SmbTransport.connect(SmbTransport.java:309) at jcifs.smb.SmbTree.treeConnect(SmbTree.java:156) at jcifs.smb.SmbFile.doConnect(SmbFile.java:911) at jcifs.smb.SmbFile.connect(SmbFile.java:954) at jcifs.smb.SmbFile.connect0(SmbFile.java:880) at jcifs.smb.SmbFile.exists(SmbFile.java:1415) at com.company.collector.common.SmbFileWrapper.exists(SmbFileWrapper.java:56) at com.company.collector.datasource.dirwatcher.impl.DirectoryWatcher.checkDirectory(DirectoryWatcher.java:178) at com.company.collector.datasource.dirwatcher.impl.DirectoryWatcher.initializeHandler(DirectoryWatcher.java:166) at com.company.collector.datasource.dirwatcher.impl.DirectoryWatcher.start(DirectoryWatcher.java:108) at com.company.collector.datasource.dirwatcher.impl.DirectoryWatcher.run(DirectoryWatcher.java:86) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source) at java.util.concurrent.FutureTask.runAndReset(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) I noticed that this stack trace indicates that it's the client or remote server, not JCIFs, that's the issue. I searched for hours, but there's nothing about this error and JCIFS, or even this error and samba as far as I could tell. After some poking around on their part using something called "Best Practices Analyzer", they found that the system process Srv.sys was not running. As detailed in some Microsoft documentation, when this service is not running, clients cannot connect to the remote share. I wouldn't have emailed about a non-jcifs specific issue, but since I couldn't find a single shred of information about this on the web, I figured I'd send this to the list to spread the knowledge and record this for posterity. Here's the Microsoft Documentation about it: http://social.technet.microsoft.com/wiki/contents/articles/21104.srv-sys-should-be-set-to-start-on-demand.aspx -Andre --001a11c2e554b97581051803167c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>Hey all,</div><div><br></div><div>This email is prima= rily to help everyone avoid a headache.=C2=A0 We use JCIFS in some of our o= n-prem software for collecting logs, and one of our customers reported that= they couldn't connect to a share on their Windows 2012 Server using JC= IFS.=C2=A0 I looked at the logs and found this exception:</div><div><br></d= iv><div>jcifs.smb.SmbException: Failed to connect: <a href=3D"http://server= .company.com/192.168.111.222">server.company.com/192.168.111.222</a></div><= div>jcifs.util.transport.TransportException</div><div>java.net.SocketExcept= ion: Software caused connection abort: recv failed</div><div><span class=3D= "" style=3D"white-space:pre"> </span>at java.net.SocketInputStream.socketRe= ad0(Native Method)</div><div><span class=3D"" style=3D"white-space:pre"> </= span>at java.net.SocketInputStream.read(Unknown Source)</div><div><span cla= ss=3D"" style=3D"white-space:pre"> </span>at java.net.SocketInputStream.rea= d(Unknown Source)</div><div><span class=3D"" style=3D"white-space:pre"> </s= pan>at jcifs.util.transport.Transport.readn(Transport.java:29)</div><div><s= pan class=3D"" style=3D"white-space:pre"> </span>at jcifs.smb.SmbTransport.= peekKey(SmbTransport.java:388)</div><div><span class=3D"" style=3D"white-sp= ace:pre"> </span>at jcifs.smb.SmbTransport.negotiate(SmbTransport.java:288)= </div><div><span class=3D"" style=3D"white-space:pre"> </span>at jcifs.smb.= SmbTransport.doConnect(SmbTransport.java:319)</div><div><span class=3D"" st= yle=3D"white-space:pre"> </span>at jcifs.util.transport.Transport.run(Trans= port.java:241)</div><div><span class=3D"" style=3D"white-space:pre"> </span= >at java.lang.Thread.run(Unknown Source)</div><div>=C2=A0</div><div><span c= lass=3D"" style=3D"white-space:pre"> </span>at jcifs.util.transport.Transpo= rt.run(Transport.java:258)</div><div><span class=3D"" style=3D"white-space:= pre"> </span>at java.lang.Thread.run(Unknown Source)</div><div>=C2=A0</div>= <div><span class=3D"" style=3D"white-space:pre"> </span>at jcifs.smb.SmbTra= nsport.connect(SmbTransport.java:309)</div><div><span class=3D"" style=3D"w= hite-space:pre"> </span>at jcifs.smb.SmbTree.treeConnect(SmbTree.java:156)<= /div><div><span class=3D"" style=3D"white-space:pre"> </span>at jcifs.smb.S= mbFile.doConnect(SmbFile.java:911)</div><div><span class=3D"" style=3D"whit= e-space:pre"> </span>at jcifs.smb.SmbFile.connect(SmbFile.java:954)</div><d= iv><span class=3D"" style=3D"white-space:pre"> </span>at jcifs.smb.SmbFile.= connect0(SmbFile.java:880)</div><div><span class=3D"" style=3D"white-space:= pre"> </span>at jcifs.smb.SmbFile.exists(SmbFile.java:1415)</div><div><span= class=3D"" style=3D"white-space:pre"> </span>at com.company.collector.comm= on.SmbFileWrapper.exists(SmbFileWrapper.java:56)</div><div><span class=3D""= style=3D"white-space:pre"> </span>at com.company.collector.datasource.dirw= atcher.impl.DirectoryWatcher.checkDirectory(DirectoryWatcher.java:178)</div= ><div><span class=3D"" style=3D"white-space:pre"> </span>at com.company.col= lector.datasource.dirwatcher.impl.DirectoryWatcher.initializeHandler(Direct= oryWatcher.java:166)</div><div><span class=3D"" style=3D"white-space:pre"> = </span>at com.company.collector.datasource.dirwatcher.impl.DirectoryWatcher= .start(DirectoryWatcher.java:108)</div><div><span class=3D"" style=3D"white= -space:pre"> </span>at com.company.collector.datasource.dirwatcher.impl.Dir= ectoryWatcher.run(DirectoryWatcher.java:86)</div><div><span class=3D"" styl= e=3D"white-space:pre"> </span>at java.util.concurrent.Executors$RunnableAda= pter.call(Unknown Source)</div><div><span class=3D"" style=3D"white-space:p= re"> </span>at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknow= n Source)</div><div><span class=3D"" style=3D"white-space:pre"> </span>at j= ava.util.concurrent.FutureTask.runAndReset(Unknown Source)</div><div><span = class=3D"" style=3D"white-space:pre"> </span>at java.util.concurrent.Schedu= ledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)</div><= div><span class=3D"" style=3D"white-space:pre"> </span>at java.util.concurr= ent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)</di= v><div><span class=3D"" style=3D"white-space:pre"> </span>at java.util.conc= urrent.ThreadPoolExecutor.runWorker(Unknown Source)</div><div><span class= =3D"" style=3D"white-space:pre"> </span>at java.util.concurrent.ThreadPoolE= xecutor$Worker.run(Unknown Source)</div><div><span class=3D"" style=3D"whit= e-space:pre"> </span>at java.lang.Thread.run(Unknown Source)</div><div><br>= </div><div>I noticed that this stack trace indicates that it's the clie= nt or remote server, not JCIFs, that's the issue.=C2=A0 I searched for = hours, but there's nothing about this error and JCIFS, or even this err= or and samba as far as I could tell.=C2=A0 After some poking around on thei= r part using something called "Best Practices Analyzer", they fou= nd that the system process Srv.sys was not running.=C2=A0 As detailed in so= me Microsoft documentation, when this service is not running, clients canno= t connect to the remote share.=C2=A0 I wouldn't have emailed about a no= n-jcifs specific issue, but since I couldn't find a single shred of inf= ormation about this on the web, I figured I'd send this to the list to = spread the knowledge and record this for posterity.</div><div><br></div><di= v>Here's the Microsoft Documentation about it:</div><div><a href=3D"htt= p://social.technet.microsoft.com/wiki/contents/articles/21104.srv-sys-shoul= d-be-set-to-start-on-demand.aspx">http://social.technet.microsoft.com/wiki/= contents/articles/21104.srv-sys-should-be-set-to-start-on-demand.aspx</a><b= r></div><div><br></div><div>-Andre</div></div> --001a11c2e554b97581051803167c--