Welcome! Log In Create A New Profile

Advanced

Re: FreeBSD + Kqueue/Poll + Libevent

August 19, 2011 12:46PM
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 может не возвращать сокет приложению для чтения данных, хотя известно что данные ОС для данного соединения уже получила.
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: 228
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready