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.