﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	uname	nginx_version
429	nginx eats response header	openid.aliz.es/anonymous		"/tmp/app.psgi

{{{
require Plack::Handler::FCGI;
my $app = sub {
    return [
        200,
        ['Transfer-Encoding' => 'gzip'],
        [
            ""\x1f\x8b\x08\x00\x42\xb5\x6e\x52\x00\x03\x0d\x8e\xc9\x11\xc0"".
            ""\x40\x0c\x83\x5a\x5a\x5d\xb6\xdc\x7f\x63\xc9\x9f\x01\x40\x39"".
            ""\xb3\x3d\x3c\x00\x84\x60\x04\x83\x45\x71\x7c\x04\x49\xd1\x0c"".
            ""\x87\xcb\xf2\xf4\x04\x51\x92\x15\x8d\x56\xd5\xf9\x19\xa6\x65"".
            ""\x3b\x1e\xaf\xeb\xcb\x0b\xc2\x28\x4e\x32\xd9\x34\x37\x6f\x30"".
            ""\x1c\x8d\x27\x33\xb3\xd3\xb9\x7d\x8b\xe5\x6a\xbd\xd9\xd9\xdd"".
            ""\xee\xf5\x15\x65\x55\x37\x9d\x6e\xdb\xbb\x77\xff\xd0\xfd\xb1"".
            ""\xfb\x45\xf7\x43\xf7\x3f\xbf\x0f\x91\x17\x68\x2e\xc0\x00\x00\x00""
        ]
    ];
};
}}}

to reproduce:

{{{
$ plackup -s FCGI --listen /tmp/test.sock --nproc 1 /tmp/app.psgi
$ nginx   # 1.5.6 configured to run that fcgi app, port 80

        $ diff -U1 nginx.conf.default nginx.conf
        --- nginx.conf.default  2013-10-28 14:25:46.225702993 +0100
        +++ nginx.conf  2013-10-29 10:42:56.052182114 +0100
        @@ -43,4 +43,5 @@
                location / {
        -            root   html;
        -            index  index.html index.htm;
        +                include /tmp/nginx/conf/fastcgi_params;
        +                fastcgi_pass  unix:/tmp/test.sock;
        +                fastcgi_param  SCRIPT_NAME '/tmp/app.psgi';
                }

$ curl -H 'TE: gzip' http://localhost
}}}

wireshark dump

{{{
GET / HTTP/1.1
User-Agent: curl/7.30.0
Host: localhost
Accept: */*
TE: gzip

HTTP/1.1 200 OK
Server: nginx/1.5.6
Date: Tue, 29 Oct 2013 09:43:26 GMT
Transfer-Encoding: chunked
Connection: keep-alive

79
....B.nR......@..ZZ]...c...@9.=<..`..Eq|.I.......Q...V....e;......(N2.47o0..'3...}..j.......eU7.n..w.....E.C.?....h.....
0
}}}

expected to get response header

{{{
Transfer-Encoding: gzip, chunked
}}}

really got response header

{{{
Transfer-Encoding: chunked
}}}"	defect	closed	major		nginx-core		invalid			Linux localhost.localdomain 3.7.10-1.16-desktop #1 SMP PREEMPT Fri May 31 20:21:23 UTC 2013 (97c14ba) x86_64 x86_64 x86_64 GNU/Linux	"nginx version: nginx/1.5.6
built by gcc 4.7.2 20130108 [gcc-4_7-branch revision 195012] (SUSE Linux) 
TLS SNI support enabled
configure arguments: --prefix=/tmp/nginx --with-rtsig_module --with-select_module --with-poll_module --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_spdy_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module --with-http_perl_module --with-mail --with-mail_ssl_module --with-cpp_test_module --with-pcre --with-pcre-jit --with-md5-asm --with-sha1-asm --with-debug
"
