On 9/19/06, <b class="gmail_sendername">Igor Sysoev</b> <<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>> 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>> С прилагаемым тарболлом нужно проделать следующее:<br>><br>> tar zxf epoll.tar.gz<br>> cd epoll<br>> make<br>><br>> После чего в каталоге epoll будет две программы: epoll и server.
<br>> Нужно запустить их в двух терминалах. Сначала server, он будет слушать<br>> на <a href="http://127.0.0.1:9000">127.0.0.1:9000</a>, потом epoll, он будет соединяться с сервером.<br>><br>> Сервер должен показать следующее:
<br>><br>> -----------<br>>> ./server<br>> accept<br>> close, sleep 60s<br>> -----------<br>><br>> epoll, если ошибки нет, должен показать:<br>><br>> -----------<br>>> ./epoll<br>> epoll_wait: 1, 00000004, 4
<br>> epoll_wait: 1, 00000005, 4<br>> read: 8<br>> epoll_wait: 1, 00000005, 4<br>> read: 0<br>> eof read<br>> -----------<br>><br>> и если ошибка есть, то<br>><br>> -----------<br>>> ./epoll
<br>> epoll_wait: 1, 00000004, 4<br>> epoll_wait: 1, 00000005, 4<br>> read: 8<br>> epoll_wait: 0, 00000005, 4<br>> epoll_wait timed out<br>> -----------<br>><br>> Ошибка воспроизводится не всегда, у меня получилось воспроизвести на
<br>> Linux 2.6.13-15.11-smp из SuSE 10. Если у вас ошибка тоже воспроизвелась,<br>> то подписывайтесь на lkml и шлите туда баг-репорт вместе с прилагаемым<br>> test-case'ом. Заодно спросите, почему постоянно приходят нотификации
<br>> EPOLLOUT - в данном случае она должна приходить только первый раз.<br>> Возможно, ошибка проявляется не только в epoll, а просто в потере сигнала<br>> закрытия сокета.<br><br>Приношу извинения. Предыдущий тарболл был неверный. Соответсвенно,
<br>таймауты при использовании epoll и memcached или epoll и<br>proxy_buffering off - это, скорее всего, ошибка в nginx'е. Однако в<br>комбинации nginx/epoll/trac - я не вижу подобной ошибки. Новый<br>тарболл пытается воспроизвести это взаимодействие nginx и сервера.
<br><br>Удачное выполнение - это:<br>------------<br>>./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>>./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