On 9/19/06, <b class="gmail_sendername">Igor Sysoev</b> &lt;<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>&gt; wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Tue, 19 Sep 2006, Igor Sysoev wrote:<br><br>&gt; С прилагаемым тарболлом нужно проделать следующее:<br>&gt;<br>&gt; tar zxf epoll.tar.gz<br>&gt; cd epoll<br>&gt; make<br>&gt;<br>&gt; После чего в каталоге epoll будет две программы: epoll и server.
<br>&gt; Нужно запустить их в двух терминалах. Сначала server, он будет слушать<br>&gt; на <a href="http://127.0.0.1:9000">127.0.0.1:9000</a>, потом epoll, он будет соединяться с сервером.<br>&gt;<br>&gt; Сервер должен показать следующее:
<br>&gt;<br>&gt; -----------<br>&gt;&gt; ./server<br>&gt; accept<br>&gt; close, sleep 60s<br>&gt; -----------<br>&gt;<br>&gt; epoll, если ошибки нет, должен показать:<br>&gt;<br>&gt; -----------<br>&gt;&gt; ./epoll<br>&gt; epoll_wait: 1, 00000004, 4
<br>&gt; epoll_wait: 1, 00000005, 4<br>&gt; read: 8<br>&gt; epoll_wait: 1, 00000005, 4<br>&gt; read: 0<br>&gt; eof read<br>&gt; -----------<br>&gt;<br>&gt; и если ошибка есть, то<br>&gt;<br>&gt; -----------<br>&gt;&gt; ./epoll
<br>&gt; epoll_wait: 1, 00000004, 4<br>&gt; epoll_wait: 1, 00000005, 4<br>&gt; read: 8<br>&gt; epoll_wait: 0, 00000005, 4<br>&gt; epoll_wait timed out<br>&gt; -----------<br>&gt;<br>&gt; Ошибка воспроизводится не всегда, у меня получилось воспроизвести на
<br>&gt; Linux 2.6.13-15.11-smp из SuSE 10. Если у вас ошибка тоже воспроизвелась,<br>&gt; то подписывайтесь на lkml и шлите туда баг-репорт вместе с прилагаемым<br>&gt; test-case'ом. Заодно спросите, почему постоянно приходят нотификации
<br>&gt; EPOLLOUT - в данном случае она должна приходить только первый раз.<br>&gt; Возможно, ошибка проявляется не только в epoll, а просто в потере сигнала<br>&gt; закрытия сокета.<br><br>Приношу извинения. Предыдущий тарболл был неверный. Соответсвенно,
<br>таймауты при использовании epoll и memcached или epoll и<br>proxy_buffering off - это, скорее всего, ошибка в nginx'е. Однако в<br>комбинации nginx/epoll/trac - я не вижу подобной ошибки. Новый<br>тарболл пытается воспроизвести это взаимодействие nginx и сервера.
<br><br>Удачное выполнение - это:<br>------------<br>&gt;./epoll<br>epoll_wait: 1, 00000004, 4<br>epoll_wait: 1, 00000005, 4<br>read: 8<br>read: 0<br>eof read<br>------------<br>или<br>------------<br>&gt;./epoll<br>epoll_wait: 1, 00000004, 4
<br>epoll_wait: 1, 00000005, 4<br>read: 8<br>read failed: (11)Resource temporarily unavailable<br>epoll_wait: 1, 00000005, 4<br>read: 0<br>eof read<br>------------<br><br>Неудачное мне не удалось воспроизвести. Оно должно завершиться сообщением
<br>epoll_wait: 0, 00000000, 0<br>epoll_wait timed out</blockquote><div><br></div></div>epoll надо запускать только 1 раз?<br>а то у меня первыйвторой запуск всегда дает <br><br>epoll_wait: 1, 00000004, 6<br>epoll_wait: 0, 00000000, 0
<br>epoll_wait timed out<br><br clear="all">-- <br>/Scoundrel