Mercurial > hg > nginx-quic
annotate conf/scgi_params @ 8746:84c60a3cd12a stable-1.20
Changed ngx_chain_update_chains() to test tag first (ticket #2248).
Without this change, aio used with HTTP/2 can result in connection hang,
as observed with "aio threads; aio_write on;" and proxying (ticket #2248).
The problem is that HTTP/2 updates buffers outside of the output filters
(notably, marks them as sent), and then posts a write event to call
output filters. If a filter does not call the next one for some reason
(for example, because of an AIO operation in progress), this might
result in a state when the owner of a buffer already called
ngx_chain_update_chains() and can reuse the buffer, while the same buffer
is still sitting in the busy chain of some other filter.
In the particular case a buffer was sitting in output chain's ctx->busy,
and was reused by event pipe. Output chain's ctx->busy was permanently
blocked by it, and this resulted in connection hang.
Fix is to change ngx_chain_update_chains() to skip buffers from other
modules unconditionally, without trying to wait for these buffers to
become empty.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sat, 30 Oct 2021 02:39:19 +0300 |
parents | 62869a9b2e7d |
children |
rev | line source |
---|---|
3637 | 1 |
2 scgi_param REQUEST_METHOD $request_method; | |
3 scgi_param REQUEST_URI $request_uri; | |
4 scgi_param QUERY_STRING $query_string; | |
5 scgi_param CONTENT_TYPE $content_type; | |
6 | |
7 scgi_param DOCUMENT_URI $document_uri; | |
8 scgi_param DOCUMENT_ROOT $document_root; | |
9 scgi_param SCGI 1; | |
10 scgi_param SERVER_PROTOCOL $server_protocol; | |
6168
62869a9b2e7d
Added the REQUEST_SCHEME parameter.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4333
diff
changeset
|
11 scgi_param REQUEST_SCHEME $scheme; |
4333
352a7b025f2e
Added HTTPS param with Apache-like behaviour to fastcgi/scgi/uwsgi_params (fixes #38).
Valentin Bartenev <vbart@nginx.com>
parents:
3637
diff
changeset
|
12 scgi_param HTTPS $https if_not_empty; |
3637 | 13 |
14 scgi_param REMOTE_ADDR $remote_addr; | |
15 scgi_param REMOTE_PORT $remote_port; | |
16 scgi_param SERVER_PORT $server_port; | |
17 scgi_param SERVER_NAME $server_name; |