-
Notifications
You must be signed in to change notification settings - Fork 183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Connection reset by peer: socket write error #365
Comments
As far as I know - at least on windows based shares - there is a 15 minutes auto disconnect timeout for idle connections. To prevent the server to close your connection you could try to send keep alive (or echo) requests. This should be possible by using SMB2Echo packets, which are already implemented in smbj. |
hi @neoxpert , do you know how to send SMB2Echo packets using the existing API ? |
Something like this should work, but I do not know if that is "the clean way".
|
I'll add a keepalive mechanism that can be configured (on/off) |
thanks ! |
@hierynomus I think can easily send a PR for the Keepalive. Before I spend time on it, let me know if you have already done anything with it. I was going to modify SMBConfig to allow for enabling/disabling keepalive with a default of disabled. Please let me know if you agree with the approach and if I am missing anywhere else in the code where keepalive needs to be set. |
@mtamassia @hierynomus did you work on this? we are getting bitten by this as well. |
Any updates on this issue? @hierynomus |
So is this still in the works? @hierynomus |
@hierynomus Any updates on this issue , how to use keepalive mechanism, we are facing same issue. |
Anthing new on this ? we're facing the same issue: |
Hello, Many thanks for the help. |
After some session inactivity time (about 15 minutes), I got these stack traces in log. What can I do to avoid them ?
2018-07-19 10:09:02,647|PacketReader |INFO |PacketReader error, got exception.
com.hierynomus.protocol.transport.TransportException: java.net.SocketException: Connection reset
at com.hierynomus.smbj.transport.tcp.direct.DirectTcpPacketReader.doRead(DirectTcpPacketReader.java:53)
at com.hierynomus.smbj.transport.PacketReader.readPacket(PacketReader.java:69)
at com.hierynomus.smbj.transport.PacketReader.run(PacketReader.java:47)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at com.hierynomus.smbj.transport.tcp.direct.DirectTcpPacketReader.readFully(DirectTcpPacketReader.java:70)
at com.hierynomus.smbj.transport.tcp.direct.DirectTcpPacketReader.readTcpHeader(DirectTcpPacketReader.java:59)
at com.hierynomus.smbj.transport.tcp.direct.DirectTcpPacketReader.doRead(DirectTcpPacketReader.java:48)
... 3 more
2018-07-19 10:09:02,660|Session |ERROR|Caught exception while closing TreeConnect with id: 1
com.hierynomus.protocol.transport.TransportException: java.net.SocketException: Connection reset by peer: socket write error
at com.hierynomus.smbj.transport.tcp.direct.DirectTcpTransport.write(DirectTcpTransport.java:77)
at com.hierynomus.smbj.connection.Connection.send(Connection.java:265)
at com.hierynomus.smbj.session.Session.send(Session.java:262)
at com.hierynomus.smbj.share.TreeConnect.close(TreeConnect.java:65)
at com.hierynomus.smbj.share.Share.close(Share.java:91)
at com.hierynomus.smbj.session.Session.logoff(Session.java:211)
at com.hierynomus.smbj.session.Session.close(Session.java:244)
at com.hierynomus.smbj.connection.Connection.close(Connection.java:136)
at com.hierynomus.smbj.connection.Connection.close(Connection.java:121)
at com.hierynomus.smbj.connection.Connection.handleError(Connection.java:428)
at com.hierynomus.smbj.transport.PacketReader.run(PacketReader.java:53)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.flush(Unknown Source)
at com.hierynomus.smbj.transport.tcp.direct.DirectTcpTransport.write(DirectTcpTransport.java:74)
... 11 more
2018-07-19 10:09:02,660|Connection |WARN |Exception while closing session 1271036582559821
com.hierynomus.protocol.transport.TransportException: java.net.SocketException: Connection reset by peer: socket write error
at com.hierynomus.smbj.transport.tcp.direct.DirectTcpTransport.write(DirectTcpTransport.java:77)
at com.hierynomus.smbj.connection.Connection.send(Connection.java:265)
at com.hierynomus.smbj.session.Session.send(Session.java:262)
at com.hierynomus.smbj.session.Session.logoff(Session.java:217)
at com.hierynomus.smbj.session.Session.close(Session.java:244)
at com.hierynomus.smbj.connection.Connection.close(Connection.java:136)
at com.hierynomus.smbj.connection.Connection.close(Connection.java:121)
at com.hierynomus.smbj.connection.Connection.handleError(Connection.java:428)
at com.hierynomus.smbj.transport.PacketReader.run(PacketReader.java:53)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.flush(Unknown Source)
at com.hierynomus.smbj.transport.tcp.direct.DirectTcpTransport.write(DirectTcpTransport.java:74)
... 9 more
The text was updated successfully, but these errors were encountered: