ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Linux-2.6.x bug test case



On Tue, 19 Sep 2006, Igor Sysoev wrote:

С прилагаемым тарболлом нужно проделать следующее:

tar zxf epoll.tar.gz
cd epoll
make

После чего в каталоге epoll будет две программы: epoll и server.
Нужно запустить их в двух терминалах. Сначала server, он будет слушать
на 127.0.0.1:9000, потом epoll, он будет соединяться с сервером.

Сервер должен показать следующее:

-----------
./server
accept
close, sleep 60s
-----------

epoll, если ошибки нет, должен показать:

-----------
./epoll
epoll_wait: 1, 00000004, 4
epoll_wait: 1, 00000005, 4
read: 8
epoll_wait: 1, 00000005, 4
read: 0
eof read
-----------

и если ошибка есть, то

-----------
./epoll
epoll_wait: 1, 00000004, 4
epoll_wait: 1, 00000005, 4
read: 8
epoll_wait: 0, 00000005, 4
epoll_wait timed out
-----------

Ошибка воспроизводится не всегда, у меня получилось воспроизвести на
Linux 2.6.13-15.11-smp из SuSE 10. Если у вас ошибка тоже воспроизвелась,
то подписывайтесь на lkml и шлите туда баг-репорт вместе с прилагаемым
test-case'ом. Заодно спросите, почему постоянно приходят нотификации
EPOLLOUT - в данном случае она должна приходить только первый раз.
Возможно, ошибка проявляется не только в epoll, а просто в потере сигнала
закрытия сокета.

Приношу извинения. Предыдущий тарболл был неверный. Соответсвенно,
таймауты при использовании epoll и memcached или epoll и
proxy_buffering off - это, скорее всего, ошибка в nginx'е. Однако в
комбинации nginx/epoll/trac - я не вижу подобной ошибки. Новый
тарболл пытается воспроизвести это взаимодействие nginx и сервера.

Удачное выполнение - это:
------------
./epoll
epoll_wait: 1, 00000004, 4
epoll_wait: 1, 00000005, 4
read: 8
read: 0
eof read
------------
или
------------
./epoll
epoll_wait: 1, 00000004, 4
epoll_wait: 1, 00000005, 4
read: 8
read failed: (11)Resource temporarily unavailable
epoll_wait: 1, 00000005, 4
read: 0
eof read
------------

Неудачное мне не удалось воспроизвести. Оно должно завершиться сообщением
epoll_wait: 0, 00000000, 0
epoll_wait timed out


Игорь Сысоев
http://sysoev.ru

Attachment: epoll1.tar.gz
Description: application/gunzip



 




Copyright © Lexa Software, 1996-2009.