尝试在 tomcat 9 上运行 gitblit,偶尔使用 JDK 11 会导致此堆栈跟踪:
gitblit | 07-May-2020 04:30:39.247 SEVERE [https-jsse-nio-8443-exec-10] org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun Error running socket processor
gitblit | java.lang.NullPointerException
gitblit | at java.base/sun.security.ssl.HKDF.extract(HKDF.java:93)
gitblit | at java.base/sun.security.ssl.HKDF.extract(HKDF.java:119)
gitblit | at java.base/sun.security.ssl.ServerHello.setUpPskKD(ServerHello.java:1167)
gitblit | at java.base/sun.security.ssl.ServerHello$T13ServerHelloProducer.produce(ServerHello.java:545)
gitblit | at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:436)
gitblit | at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1234)
gitblit | at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1170)
gitblit | at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:852)
gitblit | at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:813)
gitblit | at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392)
gitblit | at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444)
gitblit | at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1061)
gitblit | at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1048)
gitblit | at java.base/java.security.AccessController.doPrivileged(Native Method)
gitblit | at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask.run(SSLEngineImpl.java:995)
gitblit | at org.apache.tomcat.util.net.SecureNioChannel.tasks(SecureNioChannel.java:443)
gitblit | at org.apache.tomcat.util.net.SecureNioChannel.handshakeUnwrap(SecureNioChannel.java:507)
gitblit | at org.apache.tomcat.util.net.SecureNioChannel.handshake(SecureNioChannel.java:238)
gitblit | at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1616)
gitblit | at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
gitblit | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
gitblit | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
gitblit | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
gitblit | at java.base/java.lang.Thread.run(Thread.java:834)
当客户端试图从 gitblit GUI 中提取文件时。
可能感兴趣,在我更新到 JDF 的 11.0.7 版本之前,我看到了这个错误: Open JDK 11 HTTP/2 Handshake ServerHello java.util.NoSuchElementException
在这里修复了 Optional 的误用: https ://bugs.openjdk.java.net/browse/JDK-8218889但也许实际上并没有解决根本问题?
或者关于触发此错误的任何其他想法?我在这里使用自签名证书,仅供参考。客户端是火狐,java版本是
openjdk 版本“11.0.7” 2020-04-14 OpenJDK 运行环境 AdoptOpenJDK(build 11.0.7+10) OpenJDK 64-Bit Server VM AdoptOpenJDK(build 11.0.7+10,混合模式)
在 alpine linux docker 系统中运行。
追查 gitblit 偶尔超时 1 分钟的问题,并在日志中找到它。不知道有没有关系......
看起来它也在 tomcat https://bz.apache.org/bugzilla/show_bug.cgi?id=64105中找到,并在此处报告
https://bugs.openjdk.java.net/browse/JDK-8241248
由于我无法提供有关 openjdk 错误跟踪器的信息,因此我可以告诉您,通常为我导致它的客户端是 linux 上的 Firefox 75。