Welcome! Log In Create A New Profile

Advanced

Re: FreeBSD + Kqueue/Poll + Libevent

August 18, 2011 11:00AM
Alexandr Gomoliako Wrote:
-------------------------------------------------------
> Т.е. сервер ожидает данные, когда не должен. Наверное где-то при
> обработке запроса что-то посчитало, что надо больше данных для
> продолжения.
> Убедитесь, что правильно парсите запрос. Создавайте подробные
> дебаг-логи, записывайте ктрейс параллельно.

Сервер ожидает данные когда должен, Libevent принимает подключение от Nginx, отправляет сокет в Kqueue ожидать появления данных для чтения, ведь Nginx должен прислать GET запрос.
До парсинга запроса дело еще не дошло, Libevent ждет когда Kqueue вернет сокет и с него можно будет считать данные и передать выше на обработку, но Kqueue не возвращает сокет 60 секунд, пока Nginx не закроет соединение.

> > Переключение бэкенд сервера с
> > использования Kqueue на Poll решает
>
> Сомнительно.

Серьезно, лишь один дополнительный вызов и проблема исчезает.
event_config_avoid_method(cfg, "kqueue");
А в логе libevent сообщает что использует poll.

> Попробуйте libev, у него есть
> libevent-совместимый API.

Я использую http функции из libevent, которых нет в libev.
Subject Author Posted

FreeBSD + Kqueue/Poll + Libevent

urri August 18, 2011 07:42AM

Re: FreeBSD + Kqueue/Poll + Libevent

Alexandr Gomoliako August 18, 2011 10:12AM

Re: FreeBSD + Kqueue/Poll + Libevent

urri August 18, 2011 11:00AM

Re: FreeBSD + Kqueue/Poll + Libevent

Alexandr Gomoliako August 19, 2011 08:54AM

Re: FreeBSD + Kqueue/Poll + Libevent

urri August 19, 2011 12:46PM

Re: FreeBSD + Kqueue/Poll + Libevent

Valery Kholodkov August 20, 2011 05:54AM

Re: FreeBSD + Kqueue/Poll + Libevent

Igor Sysoev August 20, 2011 12:22PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 83
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready