sun.security.provider.Sun 大量锁等待
734839030 opened this issue · 5 comments
JDK 版本:
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (Tencent Kona 8.0.9) (build 1.8.0_322-b1)
OpenJDK 64-Bit Server VM (Tencent Kona 8.0.9) (build 25.322-b1, mixed mode, sharing)
线程BLOCK堆栈:
java.lang.Thread.State: BLOCKED (on object monitor)
at java.security.Provider.getService(Provider.java:1035)
- waiting to lock <0x00000005005728d0> (a sun.security.provider.Sun)
at sun.security.jca.ProviderList.getService(ProviderList.java:332)
at sun.security.jca.GetInstance.getInstance(GetInstance.java:157)
at java.security.Security.getImpl(Security.java:695)
at java.security.MessageDigest.getInstance(MessageDigest.java:170)
切换到Oracle 1.8.0_381 问题消失
@734839030
请问,能否给一个能复现问题的程序?
另外,如果换用Kona JDK 8.0.15/8u382是否还有这个问题?
@734839030 请问,能否给一个能复现问题的程序? 另外,如果换用Kona JDK 8.0.15/8u382是否还有这个问题?
程序还不好复现,我是一个线上量比较大,加解密数据包也比较大。 对应这个jdk 这个bug单https://bugs.java.com/bugdatabase/view_bug.do?bug_id=7092821.
按这个bug说法应该是从8u241 已经解决,不知道为何8u322 还报错。
切换到Kona JDK 8.0.15/8u382问题也可以解决。
按这个bug说法应该是从8u241 已经解决,不知道为何8u322 还报错。
8u241是Oracle JDK。
仅从显示的被解决的版本来看,都是Oracle JDK,如8u241,8u251,8u261和8u271。并没有看到OpenJDK的版本,如8u272。
从代码来看,OpenJDK 8u应该也没有移植相关的补丁,但OpenJDK 11+已经移植过了。
切换到Kona JDK 8.0.15/8u382问题也可以解决。
也许还有别的修改也产生了这个变化。
曾经有人想移植JDK-7092821的补丁,但被社区拒绝了。
因为,它是一个性能优化,而JDK 8作为稳定版本,原则上已经不接受性能改进方面的补丁。另外,它可能带来较高的风险。
https://mail.openjdk.org/pipermail/jdk8u-dev/2020-September/012727.html
感谢解答