nginx-0.9.0

Igor Sysoev igor на sysoev.ru
Пн Ноя 29 22:37:17 MSK 2010


On Mon, Nov 29, 2010 at 07:43:45PM +0300, Maxim Dounin wrote:

> Hello!
> 
> On Mon, Nov 29, 2010 at 06:36:24PM +0300, Igor Sysoev wrote:
> 
> > Изменения в nginx 0.9.0                                           29.11.2010
> > 
> >     *) Добавление: директива keepalive_disable.
> > 
> >     *) Добавление: директива map поддерживает переменные в качестве 
> >        значения определяемой переменной.
> > 
> >     *) Добавление: директива map поддерживает пустые строки в качестве 
> >        значения первого параметра.
> > 
> >     *) Добавление: директива map поддерживает выражения в первом параметре.
> > 
> >     *) Добавление: страница руководства nginx(8).
> >        Спасибо Сергею Осокину.
> > 
> >     *) Добавление: поддержка accept4() в Linux.
> >        Спасибо Simon Liu.
> > 
> >     *) Изменение: устранение предупреждения линкера о "sys_errlist" и 
> >        "sys_nerr" под Linux; предупреждение появилось в 0.8.35.
> > 
> >     *) Исправление: при использовании директивы auth_basic в рабочем 
> >        процессе мог произойти segmentation fault.
> >        Спасибо Михаилу Лалетину.
> > 
> >     *) Исправление: совместимость с модулем ngx_http_eval_module; ошибка 
> >        появилась в 0.8.42.
> 
> Конструкция вида:
> 
>         location /return200text {
>             return 200 "text";
>         }
> 
> больше не работает - возвращает 200 с телом стандартной 404 
> ошибки, и пишет в лог
> 
> 2010/11/29 19:20:17 [error] 42785#0: *1 open() "/usr/home/mdounin/work/nginx-generic/debug-nginx-install/html/return200text" failed (2: No such file or directory), client: ::1, server: , request: "GET /return200text HTTP/1.0"
> 
> Аналогично 
> 
>         location /return404text {
>             return 404 "text";
>         }
> 
> возвращает 404 с телом стандартной ошибки.
> 
> Оба test case'а - из http://mdounin.ru/hg/nginx-tests/, rewrite.t.  
> 
> С остальными тестами там тоже не всё хорошо, но смотреть в деталях 
> даже и не хочется.  Опять же, хорошо там никогда не было - см. 
> патчи в nginx-devel at .
> 
> Аналогично, 
> 
>         location /return204 {
>             return 204;
>         }
> 
> пытается открывать файл /return204:
> 
> 2010/11/29 19:28:30 [error] 43047#0: *1 open() "/usr/home/mdounin/work/nginx-generic/debug-nginx-install/html/return204" failed (2: No such file or directory), client: ::1, server: , request: "GET /return204 HTTP/1.0"
> 
> ответ при этом возвращает правильный, но это скорее случайность - 
> ибо возможности что-либо послать у него нет из-за header_only.  
> Поймано на сломавшихся тестах auth request - там обработчик 
> post_subrequest зовётся два раза, первый с кодом 204, второй - 
> 404.

Патч.


-- 
Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
Index: src/http/ngx_http_core_module.c
===================================================================
--- src/http/ngx_http_core_module.c	(revision 3123)
+++ src/http/ngx_http_core_module.c	(working copy)
@@ -900,11 +900,6 @@
 
     rc = ph->handler(r);
 
-    if (rc == NGX_OK) {
-        r->phase_handler = ph->next;
-        return NGX_AGAIN;
-    }
-
     if (rc == NGX_DECLINED) {
         r->phase_handler++;
         return NGX_AGAIN;


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