Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: FreeBSD + Kqueue/Poll + Libevent
Alexandr Gomoliako Wrote:
> Нет, это же вы писали вроде, что nginx
закрывает соединение while
> reading response header. А это значит, что запрос
уже давным давно
> отправлен и nginx уже ждет ответа.
Именно так, nginx отправил запрос, это я
проверял снифером, и ждет ответа.
> Скорее всего этот запрос уже даже
прочитан в буфер вашим сервером, но
> где-то у вас ошибка, что ему кажется,
что нужно больше данных и он
> опять ждет.
> Но раз вы используете http функции libevent,
то ошибка наверное в них.
Нет, запрос принят ОС на транспортном
уровне, снифер это подтверждает, но
данные не поступили на прикладной
уровень, где libevent будет парсить http
запрос. Я логирую вызовы libevent,
конкретно вызов kq_dispatch, в котором libevent
получает от Kqueue сокеты с которых можно
считать данные. И Kqueue не возращает в
libevent эти проблемные сокеты пока nginx не
закроет соединение, а возвращает как
только соединение закрывается, далее
libevent считывает данные и начинает
парсить http.
Собственно мой вопрос был: почему Kqueue
может не возвращать сокет приложению
для чтения данных, хотя известно что
данные ОС для данного соединения уже
получила.
Posted at Nginx Forum:
http://forum.nginx.org/read.php?21,213985,214055#msg-214055
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|