ПРОЕКТЫ 


  АРХИВ 


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: Появляются лишние символы при использовании SSI echo.



Здравствуйте.

Отловил Debug-log на nginx 0.7.34. На версии 0.7.35 баг не исчез, НО стал проявляться значительно реже.
Проблема возникает в файле /static/XXXXXXXX_menu.html?menu_account=selected (Х-ами заменено реальное название но количество символов сохранено. Такие-же замены сделаны и в логах)
Результат вывода echo такой "<li class="tab3 selected/rpc">" хотя в этом месте явно должен был быть код '<li class="tab3  selected">'. При следующем запросе вывелось "<li class="tab3 selectedml" &gt;="">", потом "<li class="tab3 selectedq??">".

Так-же в конце лога подозрительно выглядят строчки "2009/02/17 21:01:23 [debug] 5669#0: *2280 free: 00000000"

16 февраля 2009 г. 18:22 пользователь Владислав Щапов <phprus@xxxxxxxxx> написал:
Здравствуйте.
Nginx и так был собран с --with-debug.
Жаль, что дебаг лог я вчера включить не догадался. Сегодня при помощи ab сделал более 10к запросов к различным страничкам и в том числе к проблемным, но все запросы окончились успешно, те размеры отдаваемых страниц были точно такие какие должны были быть, да и ручное кликание по ссылкам результата не дало. Буду продолжать попытки воспроизвести баг.

Кусок HTML'я в котором выводятся некорректное значение вот такой:

<!--# if expr="$account" -->
    <li class="tab3  <!--# echo var="arg_menu_account" default="" -->">
        <a href="" аккаунт</a>
        <ul class="submenu tab_cnt_2">
            <li><a href="" аккаунт</a></li>
            <li><a href="" email и пароль</a></li>
            <!-- <li><a href="" -->
        </ul>
    </li>
<!--# endif -->

Ожидается, что на месте <!--# echo var="arg_menu_account" default="" --> выведется selected, но выводилось следующее: "selected85;", "selectedml?m" а так-же другие символы(в том числе и не алфавитно-цифровые) которых я не помню.

nginx скомпилирован таким образом:
./configure --prefix=/usr/local/nginx \
            --error-log-path=/var/log/nginx/error.log \
            --http-log-path=/var/log/nginx/access.log \
            --http-client-body-temp-path=/var/spool/nginx/client_body_temp \
            --http-proxy-temp-path=/var/spool/nginx/proxy_temp \
            --http-fastcgi-temp-path=/var/spool/nginx/fastcgi_temp \
            --pid-path=/var/run/nginx/nginx.pid \
            --with-http_ssl_module \
            --with-http_sub_module \
            --with-http_gzip_static_module \
            --with-http_addition_module \
            --with-http_flv_module \
            --with-http_xslt_module \
            --with-http_secure_link_module \
            --with-http_dav_module \
            --with-debug


16 февраля 2009 г. 1:56 пользователь Maxim Dounin <mdounin@xxxxxxxxxx> написал:

Hello!

On Sun, Feb 15, 2009 at 11:10:11PM +0500, Владислав Щапов wrote:

> Накаркал. Сейчас эти лишние символы стали появляться буквально через раз, но
> зато удалось заметить, что их либо 3 либо 4 штуки. :(
>
> Кстати забыл еще упомянуть такую деталь, что этот echo находится внутри if'а
> который проверяет существование другой переменной, которая устанавливается
> или не устанавливается в подключаемой внешним файлом при помощи include (с
> указанием параметра wait="yes") html-странице.

Постарайтесь сделать debug log для запроса, на котором проявляется
проблема.  Для этого надо собрать nginx с параметром configure
--with-debug.  Логгирование с уровнем debug можно включить для
конкретных ip-адресов так:

events {
   ...
   debug_connection  127.0.0.1;
   debug_connection  192.168.0.0/16;
}

Имея debug log можно будет пытаться что-то понять (также
желательно полный исходный код ssi-страницы, и результат запроса с
видимой проблемой).

Maxim Dounin

>
> 15 февраля 2009 г. 18:49 пользователь Владислав Щапов <phprus@xxxxxxxxx>написал:
>
> > Здравствуйте.
> > Есть nginx 0.7.34
> > Столкнулся с тем, что при использовании конструкции <!--# echo
> > var="arg_menu_account" default="" --> после самого значения параметра иногда
> > выводятся несколько левых символов (два раза выводились 3 лишних символа,
> > один раз 4). Параметр menu_account в строке запроса имеет значение selected.
> > Специально воспроизвести эту проблему не получилось.
> >
> > Подскажите пожалуйста, в чем может быть причина такого странного поведения
> > Nginx?
> >



Attachment: logs.tar.gz
Description: GNU Zip compressed data



 




Copyright © Lexa Software, 1996-2009.