in chain состаящие из одного пустого буфера

Валентин Бартенев ne на vbart.ru
Пт Окт 15 22:22:09 MSD 2010


В процессе работы над модулем сразу же обратил внимание на такое, довольно 
странное, как мне показалось, поведение nginx. Данные полученные от бэкэнда 
пропускаются через очередь фильтров, но даже, если все данные уже получены, то 
у последнего буфера в цепи флаг last_buf не включен, зато потом, происходит 
еще один вызов очереди фильтров, при этом передается цепочка состоящая всего 
из одного пустого буфера, с включенным last_buf.

В принципе, ничего страшного. Но такая ситуация, немного неприятна, если 
необходимо буферизировать все данные, а их размер заранее неизвестен. В итоге 
приходится ждать этой последней цепочки с пустым буфером. Вместо того, чтобы 
уже наконец выполнить необходимую обработку и пустить данные дальше.

Это нормально? Чем обусловлено такое поведение?

--
Валентин Бартенев


Подробная информация о списке рассылки nginx-ru