annotate docs/GNUmakefile @ 6909:5850fed24639

Upstream: read handler cleared on upstream finalization. With "proxy_ignore_client_abort off" (the default), upstream module changes r->read_event_handler to ngx_http_upstream_rd_check_broken_connection(). If the handler is not cleared during upstream finalization, it can be triggered later, causing unexpected effects, if, for example, a request was redirected to a different location using error_page or X-Accel-Redirect. In particular, it makes "proxy_ignore_client_abort on" non-working after a redirection in a configuration like this: location = / { error_page 502 = /error; proxy_pass http://127.0.0.1:8082; } location /error { proxy_pass http://127.0.0.1:8083; proxy_ignore_client_abort on; } It is also known to cause segmentation faults with aio used, see http://mailman.nginx.org/pipermail/nginx-ru/2015-August/056570.html. Fix is to explicitly set r->read_event_handler to ngx_http_block_reading() during upstream finalization, similar to how it is done in the request body reading code and in the limit_req module.
author Maxim Dounin <mdounin@mdounin.ru>
date Fri, 10 Feb 2017 20:24:26 +0300
parents f303f3e43f7b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1
775
a452a0e13539 check nginx.pm version
Igor Sysoev <igor@sysoev.ru>
parents: 681
diff changeset
2 VER= $(shell grep 'define NGINX_VERSION' src/core/nginx.h \
5147
864030a4ff2a Configure: unified nginx version computation constructs.
Ruslan Ermilov <ru@nginx.com>
parents: 4831
diff changeset
3 | sed -e 's/^.*"\(.*\)".*/\1/')
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
4 NGINX= nginx-$(VER)
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5 TEMP= tmp
5585
f303f3e43f7b Docs: switched from java XSLScript to xslscript.pl.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5147
diff changeset
6 XSLS?= xslscript.pl
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8
4187
b9dade63fcc2 The reference documentation is moving elsewhere.
Ruslan Ermilov <ru@nginx.com>
parents: 4110
diff changeset
9 all: changes
4068
22364b1f61c9 Initial English translation of Core and HTTP Core modules.
Ruslan Ermilov <ru@nginx.com>
parents: 4013
diff changeset
10
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11 changes: $(TEMP)/$(NGINX)/CHANGES.ru \
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 $(TEMP)/$(NGINX)/CHANGES
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14
4831
5e3bda6f5208 Pass changes.xml thru xmllint when generating CHANGES and CHANGES.ru.
Ruslan Ermilov <ru@nginx.com>
parents: 4776
diff changeset
15 $(TEMP)/$(NGINX)/CHANGES.ru: docs/dtd/changes.dtd \
5e3bda6f5208 Pass changes.xml thru xmllint when generating CHANGES and CHANGES.ru.
Ruslan Ermilov <ru@nginx.com>
parents: 4776
diff changeset
16 docs/xml/nginx/changes.xml \
4013
b427290fb6bc - Added missing dependencies for the CHANGES{,ru} targets.
Ruslan Ermilov <ru@nginx.com>
parents: 3999
diff changeset
17 docs/xml/change_log_conf.xml \
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
18 docs/xslt/changes.xslt
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
19
4776
3032f4854b81 Simplified makefile that builds CHANGES.
Ruslan Ermilov <ru@nginx.com>
parents: 4187
diff changeset
20 mkdir -p $(TEMP)/$(NGINX)
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
21
4831
5e3bda6f5208 Pass changes.xml thru xmllint when generating CHANGES and CHANGES.ru.
Ruslan Ermilov <ru@nginx.com>
parents: 4776
diff changeset
22 xmllint --noout --valid docs/xml/nginx/changes.xml
4013
b427290fb6bc - Added missing dependencies for the CHANGES{,ru} targets.
Ruslan Ermilov <ru@nginx.com>
parents: 3999
diff changeset
23 xsltproc --stringparam lang ru \
4776
3032f4854b81 Simplified makefile that builds CHANGES.
Ruslan Ermilov <ru@nginx.com>
parents: 4187
diff changeset
24 -o $@ docs/xslt/changes.xslt docs/xml/nginx/changes.xml
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
25
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
26
4831
5e3bda6f5208 Pass changes.xml thru xmllint when generating CHANGES and CHANGES.ru.
Ruslan Ermilov <ru@nginx.com>
parents: 4776
diff changeset
27 $(TEMP)/$(NGINX)/CHANGES: docs/dtd/changes.dtd \
5e3bda6f5208 Pass changes.xml thru xmllint when generating CHANGES and CHANGES.ru.
Ruslan Ermilov <ru@nginx.com>
parents: 4776
diff changeset
28 docs/xml/nginx/changes.xml \
4013
b427290fb6bc - Added missing dependencies for the CHANGES{,ru} targets.
Ruslan Ermilov <ru@nginx.com>
parents: 3999
diff changeset
29 docs/xml/change_log_conf.xml \
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
30 docs/xslt/changes.xslt
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
31
4776
3032f4854b81 Simplified makefile that builds CHANGES.
Ruslan Ermilov <ru@nginx.com>
parents: 4187
diff changeset
32 mkdir -p $(TEMP)/$(NGINX)
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
33
4831
5e3bda6f5208 Pass changes.xml thru xmllint when generating CHANGES and CHANGES.ru.
Ruslan Ermilov <ru@nginx.com>
parents: 4776
diff changeset
34 xmllint --noout --valid docs/xml/nginx/changes.xml
4013
b427290fb6bc - Added missing dependencies for the CHANGES{,ru} targets.
Ruslan Ermilov <ru@nginx.com>
parents: 3999
diff changeset
35 xsltproc --stringparam lang en \
4776
3032f4854b81 Simplified makefile that builds CHANGES.
Ruslan Ermilov <ru@nginx.com>
parents: 4187
diff changeset
36 -o $@ docs/xslt/changes.xslt docs/xml/nginx/changes.xml
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
37
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
38
5585
f303f3e43f7b Docs: switched from java XSLScript to xslscript.pl.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5147
diff changeset
39 docs/xslt/changes.xslt: docs/xsls/changes.xsls
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
40
5585
f303f3e43f7b Docs: switched from java XSLScript to xslscript.pl.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5147
diff changeset
41 $(XSLS) -o $@ $<