[jcifs] Obscure Connection Issue

Andre Guerlain apguerlain at gmail.com
Mon Jun 8 09:13:48 MDT 2015


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.samba.org/pipermail/jcifs/attachments/20150608/aacb7a13/attachment.html>


More information about the jCIFS mailing list