annotate auto/lib/google-perftools/conf @ 9208:2ed3f57dca0a

QUIC: fixed unsent MTU probe acknowledgement. Previously if an MTU probe send failed early in ngx_quic_frame_sendto() due to allocation error or congestion control, the application level packet number was not increased, but was still saved as MTU probe packet number. Later when a packet with this number was acknowledged, the unsent MTU probe was acknowledged as well. This could result in discovering a bigger MTU than supported by the path, which could lead to EMSGSIZE (Message too long) errors while sending further packets. The problem existed since PMTUD was introduced in 58afcd72446f (1.25.2). Back then only the unlikely memory allocation error could trigger it. However in efcdaa66df2e congestion control was added to ngx_quic_frame_sendto() which can now trigger the issue with a higher probability.
author Roman Arutyunyan <arut@nginx.com>
date Wed, 14 Feb 2024 16:56:28 +0400
parents f7e79596baf2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1949
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
2 # Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 2893
diff changeset
3 # Copyright (C) Nginx, Inc.
1949
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
4
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
6 ngx_feature="Google perftools"
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7 ngx_feature_name=
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 ngx_feature_run=no
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 ngx_feature_incs=
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10 ngx_feature_path=
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11 ngx_feature_libs="-lprofiler"
7327
f7e79596baf2 Configure: fixed compiler warnings with "-Wall -Wextra".
Sergey Kandaurov <pluknet@nginx.com>
parents: 5678
diff changeset
12 ngx_feature_test="void ProfilerStop(void);
f7e79596baf2 Configure: fixed compiler warnings with "-Wall -Wextra".
Sergey Kandaurov <pluknet@nginx.com>
parents: 5678
diff changeset
13 ProfilerStop()"
1949
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14 . auto/feature
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
16
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
17 if [ $ngx_found = no ]; then
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
18
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
19 # FreeBSD port
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
20
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
21 ngx_feature="Google perftools in /usr/local/"
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
22
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
23 if [ $NGX_RPATH = YES ]; then
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
24 ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lprofiler"
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
25 else
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
26 ngx_feature_libs="-L/usr/local/lib -lprofiler"
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
27 fi
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
28
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
29 . auto/feature
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
30 fi
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
31
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
32
4704
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
33 if [ $ngx_found = no ]; then
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
34
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
35 # MacPorts
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
36
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
37 ngx_feature="Google perftools in /opt/local/"
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
38
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
39 if [ $NGX_RPATH = YES ]; then
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
40 ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lprofiler"
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
41 else
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
42 ngx_feature_libs="-L/opt/local/lib -lprofiler"
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
43 fi
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
44
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
45 . auto/feature
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
46 fi
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
47
642755ee3fab Added code to look up Google perftools in /opt/local/, for MacPorts.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
48
1949
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
49 if [ $ngx_found = yes ]; then
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
50 CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
2893
da1ba8a5c8c9 stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents: 1949
diff changeset
51
da1ba8a5c8c9 stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents: 1949
diff changeset
52 else
da1ba8a5c8c9 stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents: 1949
diff changeset
53
da1ba8a5c8c9 stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents: 1949
diff changeset
54 cat << END
da1ba8a5c8c9 stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents: 1949
diff changeset
55
5678
0e1491139947 Configure: typo fixed.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4704
diff changeset
56 $0: error: the Google perftools module requires the Google perftools
2893
da1ba8a5c8c9 stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents: 1949
diff changeset
57 library. You can either do not enable the module or install the library.
da1ba8a5c8c9 stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents: 1949
diff changeset
58
da1ba8a5c8c9 stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents: 1949
diff changeset
59 END
da1ba8a5c8c9 stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents: 1949
diff changeset
60
da1ba8a5c8c9 stop ./configure at once on library failure
Igor Sysoev <igor@sysoev.ru>
parents: 1949
diff changeset
61 exit 1
1949
e5ce4e2de846 ngx_google_perftools_module
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
62 fi