Open JDK 11 HTTP/2 Handshake ServerHello java.util.NoSuchElementException

При тестировании HTTP-клиента Open JDK 11 через HTTP/2 возникает ошибка на стороне сервера, которая выглядит как ошибка JDK 11.

Тест запускает несколько потоков на сервере Tomcat 9, проверяя, что все потоки используют HTTP/2 и TLS1.3.

Проблема заключается в том, что ошибка находится внутри «sun.security.ssl.SSLHandshake.produce», что означает, что это не Tomcat, а JDK, вызывающий ошибку.

Кто-нибудь может подтвердить, что у вас был такой же опыт при нагрузочном тестировании уровня HTTP JDK 11? Если это так, я сообщу команде 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] ...

Этот проект github использовался для тестирования. Подробнее см. в файле readme проекта.


person user304217    schedule 11.02.2019    source источник
comment
Ошибка возникает shc.resumingSession.consumePreSharedKey().get() - кажется, что Java хочет восстановить предыдущий сеанс, но ключ сеанса больше недоступен. Я согласен с вами, что это похоже на ошибку.   -  person Robert    schedule 11.02.2019
comment
Спасибо, что сообщили об этом. Теперь это зарегистрировано как bugs.openjdk.java.net/browse/JDK-8218889< /а>   -  person daniel    schedule 13.02.2019
comment
Можете ли вы подтвердить, что проблема возникает, когда вы отправляете запросы через SSL к своему Java-приложению? Причиной этого являются входящие запросы к вашему приложению... а не исходящие запросы из вашего приложения к другим интернет-сервисам через SSL, это правильно?   -  person Dan    schedule 18.05.2019
comment
См. мой ответ на связанную проблему: stackoverflow.com/questions/61650050/ в надежде, что это поможет   -  person Simon    schedule 13.06.2020