From arut на nginx.com Mon Apr 10 10:10:21 2023 From: arut на nginx.com (Roman Arutyunyan) Date: Mon, 10 Apr 2023 14:10:21 +0400 Subject: nginxQuic: =?utf-8?B?0LfQsNCy0LjRgdCw0L3QuNC1INGB0L7QtdC00Lg=?= =?utf-8?B?0L3QtdC90LjRjyDQuCDRgdCx0YDQvtGBINC90LAgSFRUUC8yINC/0YDQvtGC?= =?utf-8?B?0L7QutC+0Ls=?= In-Reply-To: <1612586774.20230331104333@gmail.com> References: <1612586774.20230331104333@gmail.com> Message-ID: <20230410101021.tq5kkwklumf3j2zo@N00W24XTQX> Добрый день, On Fri, Mar 31, 2023 at 10:43:33AM +0300, izorkin на gmail.com wrote: > Здравствуйте. > Столкнулся с очередной ошибкой в работе с протоколом HTTP/3. > > В первом случае при запросе через curl соединение сбрасывается на HTTP/2 протокол: > curl --head --http3 https://example.com/test.txt > HTTP/2 200 > server: nginx/1.23.4 > date: Fri, 31 Mar 2023 07:24:25 GMT > content-type: text/plain > content-length: 5 > last-modified: Thu, 30 Mar 2023 18:51:19 GMT > etag: "6425da27-5" > alt-svc: h3=":443"; ma=86400 > accept-ranges: bytes Судя по логам, curl одновременно создает оба соединения - http/2 и http/3. Далее, в процессе QUIC-хендшейка nginx не получает ответа от curl и перепосылает CRYPTO-фреймы. Но к этому моменту curl уже выслал запрос по http/2. Вероятно, имеет место потеря UDP-пакетов. Попробуйте запустить curl с логгированием (-v), может там будет что-то полезное. > Во втором случае соединение зависает и curl начинает загружать ядро процессора на 100%. Судя по всему, это баг в curl. Судя по логам, nginx получает запрос и отправляет ответ. После этого curl ничего не шлет, даже подтверждения получения пакетов. Опять же, полезно было бы посмотреть, что при этом делает сам curl. > Конфигурацию и логи прикрепил в архиве. > > > -- > С уважением, > Izorkin mailto:izorkin на gmail.com > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > https://mailman.nginx.org/mailman/listinfo/nginx-ru -- Роман From izorkin на gmail.com Mon Apr 10 16:41:28 2023 From: izorkin на gmail.com (izorkin на gmail.com) Date: Mon, 10 Apr 2023 19:41:28 +0300 Subject: =?utf-8?B?UmU6IG5naW54UXVpYzog0LfQsNCy0LjRgdCw0L3QuNC1INGB0L7QtdC00LjQvdC10L3QuNGP?= =?utf-8?B?INC4INGB0LHRgNC+0YEg0L3QsCBIVFRQLzIg0L/RgNC+0YLQvtC60L7Quw==?= In-Reply-To: <20230410101021.tq5kkwklumf3j2zo@N00W24XTQX> References: <1612586774.20230331104333@gmail.com> <20230410101021.tq5kkwklumf3j2zo@N00W24XTQX> Message-ID: <11410069541.20230410194128@gmail.com> Здравствуйте, Роман. Все тесты проводил на внутри одной локальной сети, потери по UDP протоколу маловероятны. Лог удачного и неудачного запроса: * Trying 192.168.0.21:443... * Trying 192.168.0.21:443... * Connected to example.com (192.168.0.21) port 443 (#0) * ALPN: offers h2,http/1.1 * TLSv1.3 (OUT), TLS handshake, Client hello (1): * subjectAltName: host "example.com" matched cert's "example.com" * Verified certificate just fine * Connected to example.com (192.168.0.21) port 443 (#0) * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): * TLSv1.3 (IN), TLS handshake, Certificate (11): * TLSv1.3 (IN), TLS handshake, CERT verify (15): * TLSv1.3 (IN), TLS handshake, Finished (20): * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.3 (OUT), TLS handshake, Finished (20): * TLSv1.3 (OUT), TLS alert, close notify (256): * using HTTP/3 * h2h3 [:method: HEAD] * h2h3 [:path: /] * h2h3 [:scheme: https] * h2h3 [:authority: example.com] * h2h3 [user-agent: curl/8.0.1] * h2h3 [accept: */*] * Using HTTP/3 Stream ID: 0 (easy handle 0x1152ed0) > HEAD / HTTP/3 > Host: example.com > user-agent: curl/8.0.1 > accept: */* > < HTTP/3 403 HTTP/3 403 < server: nginx/1.23.4 server: nginx/1.23.4 < date: Mon, 10 Apr 2023 16:28:29 GMT date: Mon, 10 Apr 2023 16:28:29 GMT < content-type: text/html content-type: text/html < content-length: 153 content-length: 153 < * Connection #0 to host example.com left intact * Trying 192.168.0.21:443... * Trying 192.168.0.21:443... * Connected to example.com (192.168.0.21) port 443 (#0) * ALPN: offers h2,http/1.1 * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): * TLSv1.3 (IN), TLS handshake, Certificate (11): * TLSv1.3 (IN), TLS handshake, CERT verify (15): * TLSv1.3 (IN), TLS handshake, Finished (20): * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.3 (OUT), TLS handshake, Finished (20): * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 * ALPN: server accepted h2 * Server certificate: * subject: CN=example.com * start date: Mar 6 17:57:46 2023 GMT * expire date: Apr 5 17:57:46 2025 GMT * subjectAltName: host "example.com" matched cert's "example.com" * issuer: CN=minica root ca 283035 * SSL certificate verify ok. * using HTTP/2 * h2h3 [:method: HEAD] * h2h3 [:path: /] * h2h3 [:scheme: https] * h2h3 [:authority: example.com] * h2h3 [user-agent: curl/8.0.1] * h2h3 [accept: */*] * Using Stream ID: 1 (easy handle 0x1ae6ed0) > HEAD / HTTP/2 > Host: example.com > user-agent: curl/8.0.1 > accept: */* > * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): * old SSL session ID is stale, removing < HTTP/2 403 HTTP/2 403 < server: nginx/1.23.4 server: nginx/1.23.4 < date: Mon, 10 Apr 2023 16:28:32 GMT date: Mon, 10 Apr 2023 16:28:32 GMT < content-type: text/html content-type: text/html < content-length: 153 content-length: 153 < * Connection #0 to host example.com left intact Лог с бесконечным запросом: * Trying 192.168.0.21:443... * Trying 192.168.0.21:443... * Connected to example.com (192.168.0.21) port 443 (#0) * ALPN: offers h2,http/1.1 * TLSv1.3 (OUT), TLS handshake, Client hello (1): * subjectAltName: host "example.com" matched cert's "example.com" * Verified certificate just fine * Connected to example.com (192.168.0.21) port 443 (#0) * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): * TLSv1.3 (IN), TLS handshake, Certificate (11): * TLSv1.3 (IN), TLS handshake, CERT verify (15): * TLSv1.3 (IN), TLS handshake, Finished (20): * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.3 (OUT), TLS handshake, Finished (20): * TLSv1.3 (OUT), TLS alert, close notify (256): * using HTTP/3 * h2h3 [:method: HEAD] * h2h3 [:path: /] * h2h3 [:scheme: https] * h2h3 [:authority: example.com] * h2h3 [user-agent: curl/8.0.1] * h2h3 [accept: */*] * Using HTTP/3 Stream ID: 0 (easy handle 0x18f6ed0) > HEAD / HTTP/3 > Host: example.com > user-agent: curl/8.0.1 > accept: */* > * ngtcp2_conn_writev_stream returned error: ERR_DRAINING * ngtcp2_conn_writev_stream returned error: ERR_DRAINING * ngtcp2_conn_writev_stream returned error: ERR_DRAINING * ngtcp2_conn_writev_stream returned error: ERR_DRAINING * ngtcp2_conn_writev_stream returned error: ERR_DRAINING * ngtcp2_conn_writev_stream returned error: ERR_DRAINING -- С уважением, Izorkin mailto:izorkin на gmail.com From mdounin на mdounin.ru Tue Apr 11 16:17:46 2023 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 11 Apr 2023 19:17:46 +0300 Subject: nginx-1.24.0 Message-ID: Изменения в nginx 1.24.0 11.04.2023 *) Стабильная ветка 1.24.x. -- Maxim Dounin http://nginx.org/ From izorkin на gmail.com Mon Apr 17 11:43:53 2023 From: izorkin на gmail.com (izorkin на gmail.com) Date: Mon, 17 Apr 2023 14:43:53 +0300 Subject: =?utf-8?B?UmU6IG5naW54UXVpYzog0LfQsNCy0LjRgdCw0L3QuNC1INGB0L7QtdC00LjQvdC10L3QuNGP?= =?utf-8?B?INC4INGB0LHRgNC+0YEg0L3QsCBIVFRQLzIg0L/RgNC+0YLQvtC60L7Quw==?= In-Reply-To: <20230410101021.tq5kkwklumf3j2zo@N00W24XTQX> References: <1612586774.20230331104333@gmail.com> <20230410101021.tq5kkwklumf3j2zo@N00W24XTQX> Message-ID: <442772267.20230417144353@gmail.com> Добрый день. Открыл запрос в curl - https://github.com/curl/curl/issues/10938 Вторую ошибку они не могут воспроизвести. -- С уважением, Izorkin mailto:izorkin на gmail.com From chipitsine на gmail.com Mon Apr 17 12:09:54 2023 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Mon, 17 Apr 2023 14:09:54 +0200 Subject: =?UTF-8?B?UmU6IG5naW54UXVpYzog0LfQsNCy0LjRgdCw0L3QuNC1INGB0L7QtdC00LjQvdC10L3QuA==?= =?UTF-8?B?0Y8g0Lgg0YHQsdGA0L7RgSDQvdCwIEhUVFAvMiDQv9GA0L7RgtC+0LrQvtC7?= In-Reply-To: <442772267.20230417144353@gmail.com> References: <1612586774.20230331104333@gmail.com> <20230410101021.tq5kkwklumf3j2zo@N00W24XTQX> <442772267.20230417144353@gmail.com> Message-ID: QUIC Interop Runner (seemann.io) - интересно, что curl не участвует в кросс тестировании пн, 17 апр. 2023 г. в 13:44, : > Добрый день. > Открыл запрос в curl - https://github.com/curl/curl/issues/10938 > Вторую ошибку они не могут воспроизвести. > > > -- > С уважением, > Izorkin mailto:izorkin на gmail.com > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > https://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: From arut на nginx.com Tue Apr 18 15:15:21 2023 From: arut на nginx.com (Roman Arutyunyan) Date: Tue, 18 Apr 2023 19:15:21 +0400 Subject: =?utf-8?B?UmU6IG5naW54UXVpYzog0LfQsNCy0LjRgdCw0L3QuNC1INGB0L4=?= =?utf-8?B?0LXQtNC40L3QtdC90LjRjyDQuCDRgdCx0YDQvtGBINC90LAgSFRUUC8yINC/?= =?utf-8?B?0YDQvtGC0L7QutC+0Ls=?= In-Reply-To: References: <1612586774.20230331104333@gmail.com> <20230410101021.tq5kkwklumf3j2zo@N00W24XTQX> <442772267.20230417144353@gmail.com> Message-ID: <9213BA30-7062-425F-BB65-38FAC481A0F5@nginx.com> Добрый день, Илья. > On 17 Apr 2023, at 16:09, Илья Шипицин wrote: > > QUIC Interop Runner (seemann.io) - интересно, что curl не участвует в кросс тестировании curl использует сторонние библиотеки для поддержки http/3. одна из них ngtcp2, и она в интеропе есть. > > > > пн, 17 апр. 2023 г. в 13:44, >: >> Добрый день. >> Открыл запрос в curl - https://github.com/curl/curl/issues/10938 >> Вторую ошибку они не могут воспроизвести. >> >> >> -- >> С уважением, >> Izorkin mailto:izorkin на gmail.com >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> https://mailman.nginx.org/mailman/listinfo/nginx-ru > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > https://mailman.nginx.org/mailman/listinfo/nginx-ru ---- Roman Arutyunyan arut на nginx.com ----------- следующая часть ----------- Вложение в формате HTML было извлечено… URL: