ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ngx_http_core_send_continue руши тся в 0.6.34




On 23.12.2008, at 17:11, Igor Sysoev wrote:

On Tue, Dec 23, 2008 at 05:09:27PM +0300, Petr Leonov wrote:

А то что он, когда не рушится, возвращает 500 это нормально?
Если нет, то я полезу вверх по стеку, и, может, найду в чем дело.

Возможно, виноват curl ;)

Во-первых, возращать он должен 405, потому что POST в статику.

Проверил 0.6.32 ? возвращает 405 и не падает.


Во-вторых, нестабильный результат говорит скорее о проблемах сборки.


Поставил gcc-4.2.1 и 0.6.34 стал падать стабильно.


curl тут никаким боком.


Так точно :) Но этот его 100-Continue мешает очень.
На всякий случай его тоже обновил на 7.19.2. Результат тот же.

Бог с этим континуумом, конечно.
Приятного отпуска, Игорь ;)


On 23.12.2008, at 16:15, Igor Sysoev wrote:

On Tue, Dec 23, 2008 at 04:37:19AM +0300, Peter Leonov wrote:

От такой команды рушится nginx 0.6.34

curl -i -F a=b http://localhost:8080/

Отличается этот запрос тем, что шлет
Expect: 100-continue
после чего происходит сбой в функции
ngx_http_core_send_continue()
а именно тут ngx_http_core_modlue.c:1289

n = r->connection->send(r->connection,
                     (u_char *) "HTTP/1.1 100 Continue" CRLF CRLF,
                     sizeof("HTTP/1.1 100 Continue" CRLF CRLF) -
1);

У меня получалось, что r->connection->send есть
NULL.
Иногда, после пересборки, процесс не
рушится, а возвращает 500 ошибку,
если пересобрать еще раз, начинает
просто падать.
И так по кругу ;)


Тестил на Mac OS 10.5.6, собирал gcc 4.0.1 (Apple Inc.
build 5484)

У меня на FreeBSDi/gcc 4.2.1 не воспроизводится.
Судя по нестабильности результата, дело в сборке.

конфиг такой:

daemon off;
worker_processes  1;

pid /tmp/nginx-js.pid;
error_log /tmp/nginx-js.log debug;

events { worker_connections  1024; }

http
{
        include       mime.types;
        default_type  application/octet-stream;
        
        access_log off;

        sendfile        on;
        keepalive_timeout  65;

        server
        {
                listen       8080;
                server_name  localhost;
                
                location /
                {
                        root   html;
                        index  index.html index.htm;
                }
        }
}


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



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





 




Copyright © Lexa Software, 1996-2009.