<div dir="ltr">Applied the patch, still the same.<br>The other only difference I can think about is that I&#39;m running Cherokee on a different port. Maybe my VPS is handling them differently.<br>I&#39;ll try testing it on the same port this evening and let you know.<br>
<br>Thank you.<br><br>Yo&#39;av<br><br><div class="gmail_quote">On Tue, Jan 27, 2009 at 11:40 AM, Igor Sysoev <span dir="ltr">&lt;<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On Tue, Jan 27, 2009 at 11:25:09AM +0200, Yo&#39;av Moshe wrote:<br>
<br>
&gt; Sure, here my Cherokee&#39;s strace:<br>
&gt; <a href="http://pastebin.com/m13cd213d" target="_blank">http://pastebin.com/m13cd213d</a><br>
&gt;<br>
&gt; What you are saying about tcpdump&#39;s logs is strange, but I have no idea<br>
&gt; what&#39;s causing it.<br>
<br>
</div>I see only two difference with nginx:<br>
<br>
1) it uses level triggered epoll (nginx uses edge triggered epoll),<br>
2) and it uses TCP_NODELAY for first request (nginx set TCP_NODELAY<br>
 &nbsp; only just before going to keep-alive).<br>
<br>
The attached patch sets TCP_NODELAY from very start.<br>
<div><div></div><div class="Wj3C7c"><br>
&gt; Yo&#39;av.<br>
&gt;<br>
&gt; On Tue, Jan 27, 2009 at 10:51 AM, Igor Sysoev &lt;<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; On Tue, Jan 27, 2009 at 10:42:57AM +0200, Yo&#39;av Moshe wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt; Note I just compiled Cherokee 0.98. It is serving the file as it should<br>
&gt; &gt; &gt; using sendfile and epoll.<br>
&gt; &gt;<br>
&gt; &gt; Have you tried this on the same host ?<br>
&gt; &gt; Could you post strace ?<br>
&gt; &gt;<br>
&gt; &gt; &gt; On Mon, Jan 26, 2009 at 2:05 PM, Yo&#39;av Moshe &lt;<a href="mailto:bjesus@gmail.com">bjesus@gmail.com</a>&gt; wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Hey, attached is my tcpdump log.<br>
&gt; &gt; &gt; &gt; I&#39;ve never used tcpdump before, so I hope the log is fine.<br>
&gt; &gt; &gt; &gt; I used grep to show only the connections from my computer while running<br>
&gt; &gt; &gt; &gt; &#39;wget <a href="http://www.noal.org.il/static/temp/hozer.pdf" target="_blank">http://www.noal.org.il/static/temp/hozer.pdf</a>&#39;.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Hope this will lead us somewhere...<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Yo&#39;av.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; On Sun, Jan 25, 2009 at 9:21 PM, Igor Sysoev &lt;<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>&gt; wrote:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; On Sun, Jan 25, 2009 at 09:04:54PM +0200, Yo&#39;av Moshe wrote:<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; Sendfile is now off, using select, and still the same...<br>
&gt; &gt; &gt; &gt;&gt; &gt; <a href="http://pastebin.com/m2c3ea25b" target="_blank">http://pastebin.com/m2c3ea25b</a><br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; I have no idea, why it may be so.<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; I see that select() returned event (&quot;out [19]&quot;):<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; 28215 20:50:18 select(20, [10 19], [19], NULL, {0, 500000} &lt;unfinished<br>
&gt; &gt; &gt; &gt;&gt; ...&gt;<br>
&gt; &gt; &gt; &gt;&gt; 28215 20:50:18 &lt;... select resumed&gt; ) &nbsp; = 1 (out [19], left {0,<br>
&gt; &gt; 380000})<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; However, at some stage select() did not return event, although the<br>
&gt; &gt; event<br>
&gt; &gt; &gt; &gt;&gt; is still active (&quot;select(20, [10 19], [19], NULL ...&quot;):<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; 28215 20:50:18 gettimeofday({1232909418, 293895}, NULL) = 0<br>
&gt; &gt; &gt; &gt;&gt; 28215 20:50:18 writev(19,<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; [{&quot;\227\1\2\1\3\1\4\1\5\0\373\0\374\1\230\1\231\1\232\1\233\0\375\0\376\1\6\1\7\1\10\0&quot;...,<br>
&gt; &gt; &gt; &gt;&gt; 9676}], 1) = 9676<br>
&gt; &gt; &gt; &gt;&gt; 28215 20:50:18 pread64(20,<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &quot;\24\7\6#\&quot;\&#39;&amp;\0214\22$63\1\6\25\24\26\27\02632654&amp;#\&quot;\6\3\226\204&quot;...,<br>
&gt; &gt; &gt; &gt;&gt; 32768, 1605632) = 32768<br>
&gt; &gt; &gt; &gt;&gt; 28215 20:50:18 writev(19,<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; [{&quot;\24\7\6#\&quot;\&#39;&amp;\0214\22$63\1\6\25\24\26\27\02632654&amp;#\&quot;\6\3\226\204&quot;...,<br>
&gt; &gt; &gt; &gt;&gt; 32768}], 1) = 32768<br>
&gt; &gt; &gt; &gt;&gt; 28215 20:50:18 pread64(20, &quot;\0 \0M\0o\0r\0i\0s\0o\0n\0\&#39;\0s\0<br>
&gt; &gt; &gt; &gt;&gt; \0d\0i\0r\0e\0c&quot;..., 32768, 1638400) = 32768<br>
&gt; &gt; &gt; &gt;&gt; 28215 20:50:18 writev(19, [{&quot;\0 \0M\0o\0r\0i\0s\0o\0n\0\&#39;\0s\0<br>
&gt; &gt; &gt; &gt;&gt; \0d\0i\0r\0e\0c&quot;..., 32768}], 1) = 1716<br>
&gt; &gt; &gt; &gt;&gt; 28215 20:50:18 select(20, [10 19], [19], NULL, {0, 500000} &lt;unfinished<br>
&gt; &gt; &gt; &gt;&gt; ...&gt;<br>
&gt; &gt; &gt; &gt;&gt; 28215 20:50:18 &lt;... select resumed&gt; ) &nbsp; = 0 (Timeout)<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; Could you run tcpdump of the session ?<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; Yo&#39;av<br>
&gt; &gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; On Sun, Jan 25, 2009 at 7:33 PM, Igor Sysoev &lt;<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>&gt;<br>
&gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; On Sun, Jan 25, 2009 at 06:26:58PM +0200, Yo&#39;av Moshe wrote:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; Igor, I tried using select instead of poll, but I get the exact<br>
&gt; &gt; same<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; problem.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; Check my strace:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; <a href="http://pastebin.com/m65056ec0" target="_blank">http://pastebin.com/m65056ec0</a><br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; I get the same thing with rtsig too.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; Hints?<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; Again, file is at <a href="http://www.noal.org.il/static/temp/hozer.pdf" target="_blank">http://www.noal.org.il/static/temp/hozer.pdf</a>.<br>
&gt; &gt; &gt; &gt;&gt; Server<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; is<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; using select now.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; According strace select() does not return event for socket 19<br>
&gt; &gt; after<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; sendfile64() sent 1651005 bytes:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; 25951 18:14:26 select(20, [7 8 16 19], [19], NULL, {60, 0}<br>
&gt; &gt; &lt;unfinished<br>
&gt; &gt; &gt; &gt;&gt; ...&gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; 25951 18:14:27 &lt;... select resumed&gt; ) &nbsp; = 1 (out [19], left {58,<br>
&gt; &gt; &gt; &gt;&gt; 790000})<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; 25951 18:14:27 gettimeofday({1232900067, 890376}, NULL) = 0<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; 25951 18:14:27 sendfile64(19, 20, [1509465], 440765 &lt;unfinished<br>
&gt; &gt; ...&gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; 25951 18:14:27 &lt;... sendfile64 resumed&gt; ) = 141540<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; 25951 18:14:27 sendfile64(19, 20, [1651005], 299225 &lt;unfinished<br>
&gt; &gt; ...&gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; 25951 18:14:27 &lt;... sendfile64 resumed&gt; ) = -1 EAGAIN (Resource<br>
&gt; &gt; &gt; &gt;&gt; temporarily<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; unavailable)<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; 25951 18:14:27 select(20, [16 19], [19], NULL, {0, 500000}<br>
&gt; &gt; &lt;unfinished<br>
&gt; &gt; &gt; &gt;&gt; ...&gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; 25951 18:14:28 &lt;... select resumed&gt; ) &nbsp; = 0 (Timeout)<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; As you have got the same issue with all methods (even with level<br>
&gt; &gt; &gt; &gt;&gt; triggered<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; select()), I believe that the bug is in sendfile. You may try to<br>
&gt; &gt; turn<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; it off even for the single file:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &nbsp; &nbsp;location = /static/temp/hozer.pdf {<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;sendfile off;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &nbsp; &nbsp;}<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; In Linux 2.6.23 sendfile() has been rewritten to use splice<br>
&gt; &gt; framework.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; The bug may be introduced while rewriting.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; BTW, it seems that thttpd does not use sendfile.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; Thanks...<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; Yo&#39;av.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; On Fri, Jan 23, 2009 at 3:05 PM, Igor Sysoev &lt;<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>&gt;<br>
&gt; &gt; &gt; &gt;&gt; wrote:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; On Fri, Jan 23, 2009 at 02:35:00PM +0200, Yo&#39;av Moshe wrote:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; Thanks Igor.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; I don&#39;t want to be rude, but I find it hard to believe that<br>
&gt; &gt; it&#39;s<br>
&gt; &gt; &gt; &gt;&gt; a<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; kernel<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; bug.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; First, I&#39;m using the default CentOS 5.2 kernel, it&#39;s seems<br>
&gt; &gt; to me<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; pretty<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; odd<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; that there&#39;s such a bug in it. CentOS is being used on a lot<br>
&gt; &gt; of<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; servers,<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; some of them must be running nginx.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; Second, I tried serving the same file with thttpd, and it<br>
&gt; &gt; runs<br>
&gt; &gt; &gt; &gt;&gt; just<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; fine.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; <a href="http://195.28.180.147:40/temp/hozer.pdf" target="_blank">http://195.28.180.147:40/temp/hozer.pdf</a><br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; Note it&#39;s the exact same file which I cannot get from nginx:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; <a href="http://www.noal.org.il/static/temp/hozer.pdf" target="_blank">http://www.noal.org.il/static/temp/hozer.pdf</a><br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; How come thttpd can serve the file just fine? If it&#39;s a<br>
&gt; &gt; kernel<br>
&gt; &gt; &gt; &gt;&gt; bug, I<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; thought it would happen with all of my servers.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; If it&#39;s using some different way of sending the files which<br>
&gt; &gt; does<br>
&gt; &gt; &gt; &gt;&gt; not<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; depend<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; on that epoll call - is there any way to configure nginx to<br>
&gt; &gt; use<br>
&gt; &gt; &gt; &gt;&gt; that<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; as<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; well?<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; I do not look modern thttpd, but according its change log, it<br>
&gt; &gt; has<br>
&gt; &gt; &gt; &gt;&gt; no<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; epoll support. You may try different ways in nginx: you need<br>
&gt; &gt; to<br>
&gt; &gt; &gt; &gt;&gt; build<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; it<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;--with-rtsig_module<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;--with-select_module<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &nbsp; &nbsp; &nbsp; &nbsp;--with-poll_module<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; and then choose method:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; events {<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &nbsp; &nbsp; use &nbsp;select;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &nbsp; &nbsp; #use &nbsp;poll;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &nbsp; &nbsp; #use &nbsp;rtsig;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; }<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; Also, epoll has two modes: level triggered (default) and edge<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; triggered (EPOLLET). nginx uses more effective edge triggered<br>
&gt; &gt; &gt; &gt;&gt; mode,<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; lighttpd uses level triggered one. The bug may be in ET mode<br>
&gt; &gt; only.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; As to probabilty of kernel bugs: I saw them in FreeBSD<br>
&gt; &gt; (kqueue,<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; sendfile),<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; Linux (epoll), Solaris (event ports), and MacOSX (kqueue,<br>
&gt; &gt; &gt; &gt;&gt; sendfile).<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; Can I do anything to confirm that it&#39;s a kernel bug? If it<br>
&gt; &gt; is, I<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; should<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; probably contact CentOS&#39;s maintainers.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; Your straces confirms this: nginx added socket to epoll and<br>
&gt; &gt; did<br>
&gt; &gt; &gt; &gt;&gt; not<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; deleted it, nevertheless epoll does not send event.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; Thank you, again.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; Yo&#39;av.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; On Wed, Jan 21, 2009 at 7:26 AM, Igor Sysoev &lt;<br>
&gt; &gt; <a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>&gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; On Wed, Jan 21, 2009 at 01:52:53AM +0200, Yo&#39;av Moshe<br>
&gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Igor, here&#39;s the new strace.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href="http://pastebin.com/m5129c54b" target="_blank">http://pastebin.com/m5129c54b</a><br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Does the fact it works in low download rates still makes<br>
&gt; &gt; you<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; think<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; it&#39;s a<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; kernel issue?<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; Yes, this is seems like a kernel issue. Kernel excatly<br>
&gt; &gt; said<br>
&gt; &gt; &gt; &gt;&gt; (with<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; EAGAIN)<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; that there is no place to output data, but never returned<br>
&gt; &gt; a<br>
&gt; &gt; &gt; &gt;&gt; new<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; notification<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; via epoll_wait() about free space:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; 21420 01:39:43 &lt;... epoll_wait resumed&gt; {{EPOLLOUT,<br>
&gt; &gt; &gt; &gt;&gt; {u32=153137960,<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; u64=13811628390360331048}}}, 512, 60000) = 1<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; 21420 01:39:43 gettimeofday({1232494783, 413764}, NULL) =<br>
&gt; &gt; 0<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; 21420 01:39:43 sendfile64(20, 21, [1645625], 304605) =<br>
&gt; &gt; 40320<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; 21420 01:39:43 sendfile64(20, 21, [1685945], 264285) = -1<br>
&gt; &gt; &gt; &gt;&gt; EAGAIN<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; (Resource<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; temporarily unavailable)<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; 21420 01:39:43 epoll_wait(11, &nbsp;&lt;unfinished ...&gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; This is probably some race condition inside kernel, that<br>
&gt; &gt; does<br>
&gt; &gt; &gt; &gt;&gt; not<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; appear on<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; low speed download.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Thank you, really!<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; And thanks, Kiril and Jeff, for confirming that!<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Yo&#39;av.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; On Tue, Jan 20, 2009 at 9:39 PM, Kiril Angov &lt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; <a href="mailto:kupokomapa@gmail.com">kupokomapa@gmail.com</a>&gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; wget <a href="http://www.noal.org.il/static/temp/barvazi2.pdf" target="_blank">http://www.noal.org.il/static/temp/barvazi2.pdf</a><br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; --2009-01-20 21:36:00--<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href="http://www.noal.org.il/static/temp/barvazi2.pdf" target="_blank">http://www.noal.org.il/static/temp/barvazi2.pdf</a><br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Resolving www.noal.org.il... 195.28.180.147<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Connecting to <a href="http://www.noal.org.il" target="_blank">www.noal.org.il</a>|195.28.180.147|:80...<br>
&gt; &gt; &gt; &gt;&gt; connected.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; HTTP request sent, awaiting response... 200 OK<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Length: 1950230 (1.9M) [application/pdf]<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Saving to: `barvazi2.pdf&#39;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 81% [=====================================&gt; &nbsp; &nbsp; &nbsp; &nbsp; ]<br>
&gt; &gt; &gt; &gt;&gt; 1,596,665<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; --.-K/s &nbsp;eta 5s<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; wget -c<br>
&gt; &gt; <a href="http://www.noal.org.il/static/temp/barvazi2.pdf" target="_blank">http://www.noal.org.il/static/temp/barvazi2.pdf</a><br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; --2009-01-20 21:38:28--<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href="http://www.noal.org.il/static/temp/barvazi2.pdf" target="_blank">http://www.noal.org.il/static/temp/barvazi2.pdf</a><br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Resolving www.noal.org.il... 195.28.180.147<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Connecting to <a href="http://www.noal.org.il" target="_blank">www.noal.org.il</a>|195.28.180.147|:80...<br>
&gt; &gt; &gt; &gt;&gt; connected.<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; HTTP request sent, awaiting response... 206 Partial<br>
&gt; &gt; &gt; &gt;&gt; Content<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Length: 1950230 (1.9M), 305960 (299K) remaining<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; [application/pdf]<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Saving to: `barvazi2.pdf&#39;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 100%[+++++++++++++++++++++++++++++++++++++++=======&gt;]<br>
&gt; &gt; &gt; &gt;&gt; 1,950,230<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 295K/s &nbsp; in 1.0s<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 2009-01-20 21:38:30 (295 KB/s) - `barvazi2.pdf&#39; saved<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; [1950230/1950230]<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; On Tue, Jan 20, 2009 at 9:31 PM, jeff emminger &lt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; <a href="mailto:jemminger@gmail.com">jemminger@gmail.com</a>&gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt; Could anyone confirm that this works:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt; wget --limit-rate=3500<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href="http://www.noal.org.il/static/temp/barvazi2.pdf" target="_blank">http://www.noal.org.il/static/temp/barvazi2.pdf</a><br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt; while this doesn&#39;t:<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt; wget<br>
&gt; &gt; <a href="http://www.noal.org.il/static/temp/barvazi2.pdf" target="_blank">http://www.noal.org.il/static/temp/barvazi2.pdf</a><br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Confirmed<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; --<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Yo&#39;av Moshe<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; --<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; Igor Sysoev<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href="http://sysoev.ru/en/" target="_blank">http://sysoev.ru/en/</a><br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; --<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; &gt; Yo&#39;av Moshe<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; --<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; Igor Sysoev<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt; <a href="http://sysoev.ru/en/" target="_blank">http://sysoev.ru/en/</a><br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; --<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; &gt; Yo&#39;av Moshe<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; --<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; Igor Sysoev<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt; <a href="http://sysoev.ru/en/" target="_blank">http://sysoev.ru/en/</a><br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &gt;&gt; &gt; --<br>
&gt; &gt; &gt; &gt;&gt; &gt; Yo&#39;av Moshe<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt; --<br>
&gt; &gt; &gt; &gt;&gt; Igor Sysoev<br>
&gt; &gt; &gt; &gt;&gt; <a href="http://sysoev.ru/en/" target="_blank">http://sysoev.ru/en/</a><br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; --<br>
&gt; &gt; &gt; &gt; Yo&#39;av Moshe<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; --<br>
&gt; &gt; &gt; Yo&#39;av Moshe<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; Igor Sysoev<br>
&gt; &gt; <a href="http://sysoev.ru/en/" target="_blank">http://sysoev.ru/en/</a><br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Yo&#39;av Moshe<br>
<br>
</div></div>--<br>
<div><div></div><div class="Wj3C7c">Igor Sysoev<br>
<a href="http://sysoev.ru/en/" target="_blank">http://sysoev.ru/en/</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Yo&#39;av Moshe<br>
</div>