Welcome! Log In Create A New Profile

Advanced

Re: [PATCH 1 of 1] Test proxy_unfinished: limit buffers to force buffering on no proxy temp

Markus Linnala
April 15, 2014 10:52AM
On 15.04.2014 16:04, Maxim Dounin wrote:
> Hello!
>
> On Tue, Apr 15, 2014 at 03:26:26PM +0300, Markus Linnala wrote:
>
>> # HG changeset patch
>> # User Markus Linnala <Markus.Linnala@cybercom.com>
>> # Date 1397505734 -10800
>> # Mon Apr 14 23:02:14 2014 +0300
>> # Node ID cf54213675d59b801bee34328223c28f992cf8c7
>> # Parent 74a015aad3521ffef6b404cdaa9eafd991824301
>> Test proxy_unfinished: limit buffers to force buffering on no proxy temp
>>
>> With some systems (Fedora-20 Linux 3.13) socket buffers are huge and
>> nginx does not use temp files when proxying. Set buffer sizes to small
>> values to make use of temp files more probable. Currently there is no
>> way to force temp buffers.
>>
>> no proxy temp should fail on 1.5.2 and work okay on later versions.
>>
>> sub_filter forces chunked encoding and so it is possible to notice
>> problem because last chunk is 0 chunk when there is error.
>>
>> Only use limited buffers on 'no proxy temp' as other tests fail
>> because tests take too long.
>>
>> http://trac.nginx.org/nginx/ticket/541
>
> [...]
>
> Have you tried something simplier, like
>
> --- a/proxy_unfinished.t
> +++ b/proxy_unfinished.t
> @@ -50,7 +50,7 @@ http {
> keys_zone=one:1m;
>
> server {
> - listen 127.0.0.1:8080;
> + listen 127.0.0.1:8080 sndbuf=4k;
> server_name localhost;
>
> location / {
>
>
> ?
>

I did not try plain 4k.

I did try smaller buffers and 'big (un)?finished un' tests were
failing because it took too longer than 5s to do test. Now I ran
tests again and if sndbuf is less than 4k or maybe some buffer size
you get really bad throughoutput.

not ok 13 - big unfinished un

# Failed test 'big unfinished un'
# at proxy_unfinished.t line 152.
# undef
# doesn't match '(?^s:unfinished)'
not ok 14 - big finished un

# Failed test 'big finished un'
# at proxy_unfinished.t line 153.
# undef
# doesn't match '(?^s:finished)'


If sndbuf is more than about 36k test seems to fail sometimes.

One way to force creating of temp_file is to use proxy_store, but
then test does not work as it does not start to response before
there is error.

With my patch nginx tries to create temp-file when it has sent out
24k of a response. With sndbuf=4k it tries to create temp file
around 90k. I see this by running prove under strace.

strace -ff -o foo -s 200 -tt prove

Extra sleep 0.5s or lowering proxy buffers size does not seem to
affect the no proxy temp test.

--
Markus Linnala, Chief Systems Architect
Cybercom Finland
Pakkahuoneenaukio 2 A; 33100 Tampere
Mobile +358 40 5919 735
Markus.Linnala@cybercom.com

www.cybercom.fi | www.cybercom.com

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[PATCH 0 of 1] nginx-test proxy_unfinished fix for huge buffers

Markus Linnala 693 April 15, 2014 08:28AM

[PATCH 1 of 1] Test proxy_unfinished: limit buffers to force buffering on no proxy temp

Markus Linnala 368 April 15, 2014 08:28AM

Re: [PATCH 1 of 1] Test proxy_unfinished: limit buffers to force buffering on no proxy temp

Maxim Dounin 299 April 15, 2014 09:06AM

Re: [PATCH 1 of 1] Test proxy_unfinished: limit buffers to force buffering on no proxy temp

Markus Linnala 298 April 15, 2014 10:52AM

[PATCH] Test proxy_unfinished: limit sndbuf to force buffering on no proxy temp

Markus Linnala 348 April 15, 2014 10:58AM

Re: [PATCH 1 of 1] Test proxy_unfinished: limit buffers to force buffering on no proxy temp

Maxim Dounin 358 April 15, 2014 02:08PM

Re: [PATCH 1 of 1] Test proxy_unfinished: limit buffers to force buffering on no proxy temp

Homutov Vladimir 303 April 15, 2014 01:58PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 126
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready