HTTP3 php-fpm fastcgi_pass 500 problems

Sergey Kandaurov pluknet at nginx.com
Mon Oct 12 11:58:53 UTC 2020


> On 11 Oct 2020, at 20:58, Ryan Gould <ryanbgould at gmail.com> wrote:
> 
> 
> > Hello.
> > It would be helpful if you'll be able to provide more details,
> > such as "nginx -V" output, revision of the nginx-quic branch,
> > debug log messages for a particular request causing 500 error,
> > and relevant configuration details.  How to obtain debug log:
> > http://nginx.org/en/docs/debugging_log.htm
> 
> this is the nginx branch i am using:
> https://hg.nginx.org/nginx-quic
> 
> this is the boringssl i am using:
> https://github.com/google/boringssl/archive/master.zip
> 
> here is a debug log:
> https://quic.spoi.dev/quic.error-01.log.gz

Ok, so it looks like a longstanding problem in http upstream init routine
caused by that QUIC streams in nginx do not have real event descriptors.
This results in harmless alerts when using kqueue but not so with epoll.
Please try this patch.

# HG changeset patch
# User Sergey Kandaurov <pluknet at nginx.com>
# Date 1602503831 -3600
#      Mon Oct 12 12:57:11 2020 +0100
# Branch quic
# Node ID d791f11d1625d6f99d0d0c3272fd4c98d4816f21
# Parent  d14e15c33548a4432b682b9bbb4b6ba8df82c0b3
QUIC: fixed ngx_http_upstream_init() much like HTTP/2 connections.

diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -523,6 +523,13 @@ ngx_http_upstream_init(ngx_http_request_
     }
 #endif
 
+#if (NGX_HTTP_QUIC)
+    if (c->qs) {
+        ngx_http_upstream_init_request(r);
+        return;
+    }
+#endif
+
     if (c->read->timer_set) {
         ngx_del_timer(c->read);
     }

-- 
Sergey Kandaurov



More information about the nginx mailing list