Добрый день, On Mon, May 30, 2022 at 04:27:54PM +0400, Roman Arutyunyan wrote: > Добрый день, > > Да, я видел. спасибо. > > > On 30 May 2022, at 16:22, izor...@gmail.com wrote: > > > > Добрый день Роман. > > > > Скинул ссылку с дампом на личную почту. > > Вероятно, что могло попасть в спам, т.к. предыдущее письмо тоже осталось > > без ответа > > > > > > -- > > С уважением, > > Izorkin mailto:izor...@gmail.com > > > > _______________________________________________ > > nginx-ru mailing list -- nginx-ru@nginx.org > > To unsubscribe send an email to nginx-ru-le...@nginx.org > > ---- > Roman Arutyunyan > a...@nginx.com
> _______________________________________________ > nginx-ru mailing list -- nginx-ru@nginx.org > To unsubscribe send an email to nginx-ru-le...@nginx.org Удалось выяснить следующее. Имеет место проблема на стороне Хрома. Если точнее, в гугловой библиотоке QUICHE. Проблемa триггерится комбинацией EarlyData + HelloRetryRequest. Если Хром отправил EarlyData, которую сервер проигнорировал, то далее клиент не шлет новый ClientHello в ответ на HelloRetryRequest т.к. зачем-то ждет подтверждения EarlyData. В итоге соединение зависает и таймаутится. ClientHello -> EarlyData -> (ignore) <- HelloRetryRequest (timeout) Самый простой способ обойти проблему - избежать отправки HelloRetryRequest. В рассматриваемом случае для этого достаточно было убрать из конфигурации nginx директиву ssl_ecdh_curve. Заткнуть это также можно и в QUICHE при помощи следующего патча: diff --git a/quiche/quic/core/quic_session.cc b/quiche/quic/core/quic_session.cc index d2976006..ad5c4d3c 100644 --- a/quiche/quic/core/quic_session.cc +++ b/quiche/quic/core/quic_session.cc @@ -2404,6 +2404,9 @@ bool QuicSession::RetransmitLostData() { return false; } } + if (connection()->encryption_level() == ENCRYPTION_ZERO_RTT) { + return true; + } while (!streams_with_pending_retransmission_.empty()) { if (!CanWriteStreamData()) { break; ---- Roman Arutyunyan a...@nginx.com _______________________________________________ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org