Java jsch上的SecureRandom locking NativePRNG
我有一个生产应用程序,它创建了大约150个线程,在大约45秒内完成。最近我们开始有记忆问题。事实证明,由于锁定了NativePRNG,线程永远不会完成并随着时间的推移累积 我们的测试/备份机器只有这个问题。生产机器运行相同的罐没有问题 这是线程的堆栈跟踪Java jsch上的SecureRandom locking NativePRNG,java,linux,random,jsch,Java,Linux,Random,Jsch,我有一个生产应用程序,它创建了大约150个线程,在大约45秒内完成。最近我们开始有记忆问题。事实证明,由于锁定了NativePRNG,线程永远不会完成并随着时间的推移累积 我们的测试/备份机器只有这个问题。生产机器运行相同的罐没有问题 这是线程的堆栈跟踪 "VSGADNE01" #923 prio=5 os_prio=0 tid=0x00007f7698e41800 nid=0x2b32 runnable [0x00007f7601ac3000] java.lang.Thread.Sta
"VSGADNE01" #923 prio=5 os_prio=0 tid=0x00007f7698e41800 nid=0x2b32 runnable
[0x00007f7601ac3000]
java.lang.Thread.State: RUNNABLE
at java.util.Arrays.copyOfRange(Arrays.java:3520)
at sun.security.provider.NativePRNG$RandomIO.implNextBytes(NativePRNG.java:553)
- locked <0x00000005cdf9c660> (a java.lang.Object)
at sun.security.provider.NativePRNG$RandomIO.access$400(NativePRNG.java:331)
at sun.security.provider.NativePRNG.engineNextBytes(NativePRNG.java:220)
at java.security.SecureRandom.nextBytes(SecureRandom.java:468)
at com.jcraft.jsch.jce.Random.fill(Random.java:78)
at com.jcraft.jsch.Packet.padding(Packet.java:59)
- locked <0x00000005cde992d0> (a com.jcraft.jsch.jce.Random)
at com.jcraft.jsch.Session.encode(Session.java:885)
at com.jcraft.jsch.Session._write(Session.java:1366)
- locked <0x000000064974f720> (a java.lang.Object)
at com.jcraft.jsch.Session.write(Session.java:1335)
at com.jcraft.jsch.ChannelSftp.sendPacketPath(ChannelSftp.java:2575)
at com.jcraft.jsch.ChannelSftp.sendPacketPath(ChannelSftp.java:2559)
at com.jcraft.jsch.ChannelSftp.sendCLOSE(ChannelSftp.java:2538)
at com.jcraft.jsch.ChannelSftp._sendCLOSE(ChannelSftp.java:2464)
at com.jcraft.jsch.ChannelSftp._get(ChannelSftp.java:1155)
at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:961)
at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:873)
at com.ngss.vodafone.oss.ebm.Controller.SftpUtils.getFiles(SftpUtils.java:141)
at com.ngss.vodafone.oss.ebm.Controller.SftpUtils.download(SftpUtils.java:187)
at com.ngss.vodafone.oss.ebm.Controller.Host.downloadFiles(Host.java:108)
at com.ngss.vodafone.oss.ebm.Controller.Host.run(Host.java:86)
at java.lang.Thread.run(Thread.java:748)
这两台机器都是Red Hat Enterprise Linux Server 7.4(Maipo)您应该提供更多详细信息,特别是您使用的Java版本和供应商。还有哪个操作系统(版本、内核等)。你也应该读这篇文章:我用更多的信息更新了这个问题。另外,我不直接使用SecureRandom,jsch.jsch是开源的,因此,如果您有需要编辑源代码的运行时问题,这不应该是一个障碍。您应该提供更多详细信息,特别是您使用的Java版本和供应商。还有哪个操作系统(版本、内核等)。你也应该读这篇文章:我用更多的信息更新了这个问题。另外,我不直接使用SecureRandom,jsch.jsch是开源的,因此,如果您有运行时问题,需要编辑源代码,这不应该是一个障碍。
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)