annotate proxy_available.t @ 1951:1867428f1673

Tests: fixed h3_limit_req.t spurious failures. In the "reset stream - cancellation" test, HTTP/3 stream is closed without sending the request body when the request is waiting in the limit_req module, and this results in error 444. However, when the request is received with some minor delay due to system load, it is not delayed by limit_req, and the stream is closed during reading the request body, which results in error 400 instead, breaking the test. Fix is to introduce yet another request before the "reset stream" test, so the stream in question is always delayed by limit_req.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 14 Mar 2024 02:25:49 +0300
parents 4b80f1ab7fdc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1779
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6 # Tests for http proxy module with available bytes counting.
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 ###############################################################################
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use warnings;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use strict;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use Test::More;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15 use IO::Select;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17 BEGIN { use FindBin; chdir($FindBin::Bin); }
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19 use lib 'lib';
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20 use Test::Nginx qw/ :DEFAULT http_end /;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22 ###############################################################################
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24 select STDERR; $| = 1;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25 select STDOUT; $| = 1;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
26
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27 my $t = Test::Nginx->new()->has(qw/http proxy/)->plan(2);
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29 $t->write_file_expand('nginx.conf', <<'EOF');
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31 %%TEST_GLOBALS%%
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33 daemon off;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35 events {
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36 }
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38 http {
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39 %%TEST_GLOBALS_HTTP%%
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
40
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41 server {
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42 listen 127.0.0.1:8080;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43 server_name localhost;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
45 location /buffered {
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
46 proxy_pass http://127.0.0.1:8081;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
47 proxy_buffer_size 512;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48 }
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
49
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
50 location /unbuffered {
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
51 proxy_pass http://127.0.0.1:8082;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52 proxy_buffer_size 512;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53 proxy_buffering off;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54 }
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
55 }
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
56 }
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
57
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
58 EOF
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
59
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
60 $t->run_daemon(\&http_daemon, port(8081));
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
61 $t->run_daemon(\&http_daemon, port(8082));
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
62 $t->run();
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
63
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
64 $t->waitforsocket('127.0.0.1:' . port(8081));
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65 $t->waitforsocket('127.0.0.1:' . port(8082));
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67 ###############################################################################
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
69 # ticket #2367: socket leaks with EPOLLRDHUP
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
70 # due to missing rev->ready reset on rev->available == 0
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
71 #
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
72 # to reproduce leaks, the first part of the response should fit proxy buffer
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
73
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
74 my $s = http_get('/buffered', start => 1);
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
75 IO::Select->new($s)->can_read(3);
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
76
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
77 $t->reload();
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
78
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
79 TODO: {
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
80 local $TODO = 'not yet' if $^O eq 'linux' and !$t->has_version('1.23.1');
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
81
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
82 like(http_end($s), qr/AND-THIS/, 'zero available - buffered');
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
83
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
84 }
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
85
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
86 $s = http_get('/unbuffered', start => 1);
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
87 IO::Select->new($s)->can_read(3);
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
88
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
89 $t->stop();
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
90
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
91 like(http_end($s), qr/AND-THIS/, 'zero available - unbuffered');
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
92
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
93 $t->todo_alerts() if $^O eq 'linux' and !$t->has_version('1.23.1');
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
94
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
95 ###############################################################################
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
96
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
97 sub http_daemon {
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
98 my ($port) = @_;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
99
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
100 my $server = IO::Socket::INET->new(
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
101 Proto => 'tcp',
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
102 LocalHost => "127.0.0.1:$port",
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
103 Listen => 5,
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
104 Reuse => 1
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
105 )
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
106 or die "Can't create listening socket: $!\n";
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
107
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
108 local $SIG{PIPE} = 'IGNORE';
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
109
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
110 while (my $client = $server->accept()) {
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
111 $client->autoflush(1);
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
112
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
113 my $headers = '';
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
114 my $uri = '';
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
115
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
116 while (<$client>) {
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
117 $headers .= $_;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
118 last if (/^\x0d?\x0a?$/);
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
119 }
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
120
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
121 next if $headers eq '';
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
122
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
123 my $r = <<EOF;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
124 HTTP/1.1 200 OK
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
125 Connection: close
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
126
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
127 EOF
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
128
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
129 $r = $r . 'x' x (512 - length($r));
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
130 print $client $r;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
131
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
132 select undef, undef, undef, 1.1;
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
133 print $client 'AND-THIS';
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
134 }
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
135 }
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
136
4b80f1ab7fdc Tests: socket leaks with zero available bytes (ticket #2367).
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
137 ###############################################################################