在我的应用程序中,我使用了J2ssh库(0.2.7)来建立NETCONF连接。在监视配置文件时,我注意到很少有线程在j2ssh会话的断开()中被阻塞。这不是一个前后一致的问题,它有时会发生。
我已经给出了下面的堆栈跟踪。
Thread-116 (HornetQ-client-global-threads-1530142454) - priority:10 - threadId:0x00007f7e34065000 - nativeId:0x75aa - state:BLOCKED
stackTrace:
java.lang.Thread.State: BLOCKED (on object monitor)
at com.sshtools.j2ssh.transport.TransportProtocolCommon.sendMessage(Unknown Source)
- waiting to lock <0x0000000600164f20> (a com.sshtools.j2ssh.transport.TransportProtocolClient)
at com.sshtools.j2ssh.transport.TransportProtocolCommon.sendDisconnect(Unknown Source)
at com.sshtools.j2ssh.transport.TransportProtocolCommon.disconnect(Unknown Source)
at com.sshtools.j2ssh.SshClient.disconnect(Unknown Source)
at com.test.server.protocol.communication.MyNetconfSession.close(MyNetconfSession.java:106)发布于 2018-09-12 12:47:11
您正在使用的SSH库已经有10年没有维护了。如果这是一个问题,它将永远不会被解决。
出于安全考虑,您应该升级到https://github.com/sshtools/j2ssh-maverick的替换库。
这个问题很可能在新版本中不存在,但至少如果存在,您可以报告一个问题,因为该项目仍然处于活动状态。
https://stackoverflow.com/questions/52274842
复制相似问题