annotate contrib/README @ 7951:c7a8bdf5af55

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 1bdf906bba99
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
537
c9ad0d9c7d59 nginx-0.1.43-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1
667
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
2 geo2nginx.pl by Andrei Nigmatulin
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
3
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
4 The perl script to convert CSV geoip database ( free download
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
5 at http://www.maxmind.com/app/geoip_country ) to format, suitable
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
6 for use by the ngx_http_geo_module.
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
7
537
c9ad0d9c7d59 nginx-0.1.43-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8
667
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
9 unicode2nginx by Maxim Dounin
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
10
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
11 The perl script to convert unicode mappings ( available
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
12 at http://www.unicode.org/Public/MAPPINGS/ ) to the nginx
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
13 configuration file format.
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
14 Two generated full maps for windows-1251 and koi8-r.
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
15
5461
1bdf906bba99 Contrib: added vim to README.
Maxim Dounin <mdounin@mdounin.ru>
parents: 667
diff changeset
16
1bdf906bba99 Contrib: added vim to README.
Maxim Dounin <mdounin@mdounin.ru>
parents: 667
diff changeset
17 vim by Evan Miller
1bdf906bba99 Contrib: added vim to README.
Maxim Dounin <mdounin@mdounin.ru>
parents: 667
diff changeset
18
1bdf906bba99 Contrib: added vim to README.
Maxim Dounin <mdounin@mdounin.ru>
parents: 667
diff changeset
19 Syntax highlighting of nginx configuration for vim, to be
1bdf906bba99 Contrib: added vim to README.
Maxim Dounin <mdounin@mdounin.ru>
parents: 667
diff changeset
20 placed into ~/.vim/.
1bdf906bba99 Contrib: added vim to README.
Maxim Dounin <mdounin@mdounin.ru>
parents: 667
diff changeset
21