Re: Появляются лишние символы при использовании SSI echo.

Владислав Щапов phprus at gmail.com
Tue Feb 17 19:39:55 MSK 2009


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

Отловил 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 at gmail.com>написал:

> Здравствуйте.
> Nginx и так был собран с --with-debug.
> Жаль, что дебаг лог я вчера включить не догадался. Сегодня при помощи ab
> сделал более 10к запросов к различным страничкам и в том числе к проблемным,
> но все запросы окончились успешно, те размеры отдаваемых страниц были точно
> такие какие должны были быть, да и ручное кликание по ссылкам результата не
> дало. Буду продолжать попытки воспроизвести баг.
>
> Кусок HTML'я в котором выводятся некорректное значение вот такой:
>
> <!--# if expr="$account" -->
>     <li class="tab3  <!--# echo var="arg_menu_account" default="" -->">
>         <a href="/account/">Мой аккаунт</a>
>         <ul class="submenu tab_cnt_2">
>             <li><a href="/account/">Мой аккаунт</a></li>
>             <li><a href="/account/EditPasswd">Изменить email и
> пароль</a></li>
>             <!-- <li><a href="/account/Setting">Настройки</a></li> -->
>         </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 at mdounin.ru>написал:
>
> 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 at gmail.com
>> >написал:
>> >
>> > > Здравствуйте.
>> > > Есть nginx 0.7.34
>> > > Столкнулся с тем, что при использовании конструкции <!--# echo
>> > > var="arg_menu_account" default="" --> после самого значения параметра
>> иногда
>> > > выводятся несколько левых символов (два раза выводились 3 лишних
>> символа,
>> > > один раз 4). Параметр menu_account в строке запроса имеет значение
>> selected.
>> > > Специально воспроизвести эту проблему не получилось.
>> > >
>> > > Подскажите пожалуйста, в чем может быть причина такого странного
>> поведения
>> > > Nginx?
>> > >
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090217/c2f3cff8/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: logs.tar.gz
Type: application/x-gzip
Size: 4661 bytes
Desc: not available
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090217/c2f3cff8/attachment.bin>


More information about the nginx-ru mailing list