在通过 HTTP/2 测试 Open JDK 11 HTTP 客户端时,有一个服务器端错误,看起来像是 JDK 11 错误。
该测试针对 Tomcat 9 服务器运行多个线程,测试所有线程是否使用 HTTP/2 和 TLS1.3。
令人担忧的是错误在“sun.security.ssl.SSLHandshake.produce”内部,这意味着它不是Tomcat,而是导致错误的JDK。
任何人都可以确认您在对 JDK 11 的 HTTP 层进行负载测试时有相同的经验吗?如果是这样,我会向 Open JDK 团队报告。
该错误仅在运行负载测试时才明显:
java.util.NoSuchElementException: No value present
at java.base/java.util.Optional.get(Optional.java:148) ~[na:na]
at java.base/sun.security.ssl.ServerHello$T13ServerHelloProducer.produce(ServerHello.java:551) ~[na:na]
at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:436) ~[na:na]
at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1224) ~[na:na]
at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1160) ~[na:na]
at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:849) ~[na:na]
at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:810) ~[na:na]
at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:392) ~[na:na] ...
Run Code Online (Sandbox Code Playgroud)
这个github项目用于测试。有关更多详细信息,请参阅项目自述文件。
我的应用程序使用Grails可搜索插件,使用下面的Compass.
开始索引的表大约是36 MB,并且正在构建大约350 MB的索引.这在大多数人的书中都很小.
如果我们删除索引并启动Grails应用程序,索引文件将按预期重建,但经过大约一天的运行后,我们会发现此错误.我们在TellMeEntity实例上调用'reindex',因为它们被保存以确保索引更新.
异常org.compass.core.engine.SearchEngineException:无法删除别名[TellMeEntity]和ids [[stored/uncompressed,indexed,omitNorms,omitTf]]; 嵌套异常是java.io.FileNotFoundException:/ var/www/web17/log/mne/index/tellmeentity/segments_2(没有这样的文件或目录)org.compass.core.lucene.engine.transaction.readcommitted.ReadCommittedTransaction(doDelete) :348)
显然,一旦此错误发生,索引就不会更新,并且搜索不会对新输入的数据起作用.
我们检查过磁盘空间等简单的东西."segments_2"不存在,但我希望Compass能够自己创建它.
在grails-app/conf/Searchable.groovy文件中:
....
mirrorChanges = true
bulkIndexOnStartup = "fork"
Run Code Online (Sandbox Code Playgroud)
....
在我的代码中:
....
def formInstance = new TellMeEntity(name:'form',dataOwner:session.community,createBy:session.zoner,tellMeSite:form).save()
formInstance.reindex()
Run Code Online (Sandbox Code Playgroud)
....
我目前的经验是,这段代码大约24小时运行良好,但后来开始出现问题.我们每天产生大约3000个新条目,这听起来不像是高音量,所以我不认为它与音量有关.
如何解决这个问题?