Upstream split a header in FastCGI

Igor Sysoev is at rambler-co.ru
Sat Feb 18 19:43:03 MSK 2006


On Sat, 18 Feb 2006, Grigory Batalov wrote:

> On Fri, 17 Feb 2006 19:47:51 +0300 (MSK)
> Igor Sysoev <is-G97k7egY2jIKNkxEY4oc4w at public.gmane.org> wrote:
>
>>> 2006/02/17 18:57:51 [alert] 15689#0: *46 upstream split a header in FastCGI records while reading response header from upstream, client: 127.0.0.1, server: localhost, URL: "/trac/", upstream: "fastcgi://127.0.0.1:1027"
> ...
>> Это сообщение означает, что fastcgi сервер послал запись stderr
>> в то время, пока ещё не до конца выведен заголовок ответа (он выводится
>> в записях stdout). Хотя, судя по логу, записей (type = 7) stderr нет.
>>
>> Такая обработка stderr во время чтения заголовка - это багофича nginx'а.
>> Однако в данном случае, похоже, stderr нет.
>>
>> Можно сделать следующее:
>>
>> 1) в файле src/http/modules/ngx_http_fastcgi_module.c найти две строки
>>     "upstream split a header in FastCGI records" и поменять в них
>>     split на split1 и split2.
>>
>> 2) запустить nginx с отладочныи логом (желательно поставить
>>     worker_processes 1), сделать запрос и лог прислать мне.
>

>  А вот это он пишет при запуске в консоли:
>
> $ /usr/share/trac/cgi-bin/trac.fcgi
> Status: 200
> Cache-control: must-revalidate
> Expires: Fri, 01 Jan 1999 00:00:00 GMT
> Content-Type: text/html;charset=utf-8
> Content-Length: 196

Он выводит каждый заголовок в стдельной записи, из-за этого и
были проблемы. Прилагаемый патч должен исправить ошибку.
Патчится как раз то место, где стоит split2. Было бы неплохо увидить
вывод и отладочный лог с этим патчем.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list