-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Labels
Description
The old SSH lib (JSch) sets a SoTimeout when a ConnectTimeout is used.
The new lib (SSHj) uses 0 as default, which blocks 4ewa.
The timeout was not
Line 587 in 464fdd1
| protected JSch initJSch() { |
and is not
Line 731 in 928844d
| protected void initClient() { |
changed by Xyna.
If a connection breaks during a connection attempt, the process can hang during SSH setup. The TCP session is still valid as the other side just disappeared. The TCP keepalive defaults to two hours.
Thread.cputime=67ms
.usertime=60ms
"Xyna Worker (prio 7, count 1645)" Id=6328 RUNNABLE (in native)
at java.base@11.0.24/java.net.SocketInputStream.socketRead0(Native Method)
at java.base@11.0.24/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
at java.base@11.0.24/java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.base@11.0.24/java.net.SocketInputStream.read(SocketInputStream.java:140)
at java.base@11.0.24/java.net.SocketInputStream.read(SocketInputStream.java:200)
at net.schmizz.sshj.transport.TransportImpl.receiveServerIdent(TransportImpl.java:193)
at net.schmizz.sshj.transport.TransportImpl.init(TransportImpl.java:158)
at net.schmizz.sshj.SSHClient.onConnect(SSHClient.java:806)
at net.schmizz.sshj.SocketClient.connect(SocketClient.java:71)
at xact.ssh.impl.SSHConnectionInstanceOperationImpl.createSession(SSHConnectionInstanceOperationImpl.java:402)
at xact.ssh.impl.SSHConnectionInstanceOperationImpl.createSession(SSHConnectionInstanceOperationImpl.java:261)
at xact.ssh.impl.SSHConnectionInstanceOperationImpl.connect(SSHConnectionInstanceOperationImpl.java:233)
at xact.ssh.SSHShellConnectionSuperProxy.access$001(SSHShellConnectionSuperProxy.java:73)
at xact.ssh.SSHShellConnectionSuperProxy$1.connect(SSHShellConnectionSuperProxy.java:100)
at xact.ssh.SSHConnection.connect_InternalSuperCallDestination(SSHConnection.java:267)
at xact.ssh.SSHShellConnection.connect_InternalSuperCallProxy(SSHShellConnection.java:399)
at jdk.internal.reflect.GeneratedMethodAccessor147.invoke(Unknown Source)
at java.base@11.0.24/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base@11.0.24/java.lang.reflect.Method.invoke(Method.java:566)
at xact.ssh.SSHShellConnectionSuperProxy.connect(SSHShellConnectionSuperProxy.java:299)
at xact.ssh.SSHConnectionImpl.connect(SSHConnectionImpl.java:104)
at xact.ssh.SSHConnection.connect_InternalImplementation(SSHConnection.java:276)
at xact.ssh.SSHConnection.connect(SSHConnection.java:272)
at xact.ssh.impl.SSHConnectionManagementServiceOperationImpl.getConnection(SSHConnectionManagementServiceOperationImpl.java:168)
at xact.ssh.SSHConnectionManagementImpl.getConnection(SSHConnectionManagementImpl.java:111)
at xact.ssh.SSHConnectionManagement.getConnection(SSHConnectionManagement.java:277)
at csc.test.TestSSHConnectionAdtran$Step10.executeInternally(TestSSHConnectionAdtran.java:1265)