<div dir="ltr">Hi,<div><br></div><div style>I've got an issue when trying to use SPDY over HTTP for nginx.</div><div style><br></div><div style>I'm using nginx 1.4.0.</div><div style><br></div><div style>The issue is that there is 200ms delay between request is sent to server and response with data is received.</div>
<div style><br></div><div style><br></div><div style>After analysing this issue a little bit, it turned out that TCP_CORK option is set before sendfile is called and never reset afterwards.</div><div style><br></div><div style>
<div>9910       0.000165 writev(3, [{"\200\2\0\4\1\0\0\f\0\0\0\1\4\0\0\1\0\0\0d", 20}, {"\200\2\0\2\0\0\0\370\0\0\0\1\0\00080\337\242Q\262\0\342\0\35\377\0\t\0\7ver"..., 256}], 2) = 276</div><div>9910       0.000121 setsockopt(3, SOL_TCP, TCP_CORK, [1], 4) = 0</div>
<div>9910       0.000040 writev(3, [{"\0\0\0\1\1\0\0L", 8}], 1) = 8</div><div>9910       0.000052 sendfile(3, 14, [0], 76) = 76</div><div>9910       0.000054 write(5, "84.201.173.232 - - [07/May/2013:"..., 203) = 203</div>
<div>9910       0.000043 close(14)           = 0</div><div>9910       0.000162 recvfrom(3, 0x7fddc6670010, 262112, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)</div><div>9910       0.000253 epoll_wait(12, {{EPOLLIN, {u32=3328906192, u64=140590493406160}}}, 512, 180000) = 1</div>
<div>9910       0.218032 recvfrom(3, "\200\2\0\1\1\0\0u\0\0\0\3\0\0\0\0\200\0B\212bf`d\r\252h\"*6\0041"..., 262112, 0, NULL, NULL) = 125</div><div>9910       0.000391 open("/etc/nginx/html/favicon.ico", O_RDONLY|O_NONBLOCK) = 14</div>
<div>9910       0.000353 fstat(14, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0</div><div>9910       0.000273 writev(3, [{"\200\2\0\2\1\0\0\256\0\0\0\3\0\0\0\236\0a\377\0\6\0\7version\0\10"..., 182}], 1) = 182</div>
<div>9910       0.000267 write(5, "84.201.173.232 - - [07/May/2013:"..., 213) = 213</div><div>9910       0.000300 close(14)           = 0</div><div><br></div><div style>I tried to disable tcp_nopush using config file, but result is always the same.</div>
<div style><br></div><div style>Could you please help me to resolve this issue?</div><div style><br></div><div style>As temporary solution I just commented out the following code in my local source:</div><div style><div>int</div>
<div>ngx_tcp_nopush(ngx_socket_t s)</div><div>{</div><div>#if 0</div><div>    int  cork;</div><div><br></div><div>    cork = 1;</div><div><br></div><div>    return setsockopt(s, IPPROTO_TCP, TCP_CORK,</div><div>                      (const void *) &cork, sizeof(int));</div>
<div>#else</div><div>    return 0;</div><div>#endif</div><div>}</div><div style>And issue disappeared after that.</div><div style>However, I need a permanent solution for this problem.</div><div style><br></div><div style>
BR/ Yury</div></div><div><br></div></div></div>