0.6.30 @ linux amd64 & fcgi

Igor Sysoev is at rambler-co.ru
Thu May 8 10:15:01 MSD 2008


On Thu, May 08, 2008 at 04:22:44AM +0000, Sergey Serov wrote:

> On Thursday 08 May 2008, Sergey Serov wrote:
> > On Thursday 08 May 2008, Sergey Serov wrote:
> > > On Wednesday 07 May 2008, Igor Sysoev wrote:
> > > > > А если попробовать прилагаемый патч для 0.5.27 ?
> > > >
> > > > -        if (rc == NGX_OK) {
> > > > +        if (rc == NGX_OK && u->buffer.pos == u->buffer.last) {
> > >
> > > В логах появляется:
> > > 5.7006" 2008/05/08 03:22:42 [alert] 29070#0: *1 upstream split a header
> > > line in FastCGI records while reading response header from upstream,
> > > client: 125.24.35.220, server: dev.example.net, URL: "/login", upstream:
> > > "fastcgi://unix:/tmp/example_dev.sock:", host: "dev.example.net",
> > > referrer: "http://dev.example.net/registration"
> >
> > Скорее всего я каким-то образом ошибся в пред. тесте.
> > Пред. раз я пересобрал не полностью, а только то что сделал make после
> > изменений в одном файле. После make clean (на самом деле dpkg-buildpackage)
> > и полной пересборки появляется все то же сообщение про recv() failed (95:
> > Operation not supported
> >
> 
> Это мое утверждение о том, что пред. утверждение ложно - ложно :-)
> Вообщем на текущий момент я убежден, что:
>  if (rc == NGX_OK && u->buffer.pos == u->buffer.last) {
> дает в логах "upstream split a header".

Можно попробовать 0.6.30 с прилагаемым патчем  и прилать отладочный вывод 
в районе fastcgi headers ?


-- 
Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
Index: src/http/modules/ngx_http_fastcgi_module.c
===================================================================
--- src/http/modules/ngx_http_fastcgi_module.c	(revision 1317)
+++ src/http/modules/ngx_http_fastcgi_module.c	(working copy)
@@ -1232,11 +1232,15 @@
         }
 
         if (rc == NGX_OK) {
-            return NGX_AGAIN;
+            continue;
         }
 
         /* rc == NGX_AGAIN */
 
+        if (u->buffer.pos != u->buffer.last) {
+            return NGX_AGAIN;
+        }
+
         ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
                        "upstream split a header line in FastCGI records");
 


More information about the nginx-ru mailing list