Re: bugreport: при чтении из memcached препендятся случайные символы
TDz TDz
tdz at modestus.org
Mon Jun 4 21:14:12 MSD 2007
В RoR есть вроде спец опция отключающая его механизмы оптимизации работы с
мемкешд после чего он должен писать без выкрутасов. Дебагали след образом -
мемкеш демон запущен с -vv чтоб видеть запросы и ответы, запросы давали
правда вместо telnet по nc вроде. В общем получается что nginx выдаёт
приблизительно то же что и nc, попробую ковырять API рубивское
04.06.07, Boguk Maxim <astar at rambler-co.ru> написал(а):
>
> Я бы попробовал руками сделать telnet memcached_server memcached_ip
> и сделать руками
> get имя_ключа
>
> И посмотреть есть там лишние символы в начале данных или нет.
>
> То как сериализует и десериализует RoR данные для memcached знает только
> он и его авторы. Не исключено что в первые несколько байт идут какие то
> служебные флаги/данные про которые nginx ничего не знает.
>
> Я сильно подозреваю что проблема именно в этом.
>
> PS: если не секрет каким образом проводился 'дебаг мемкаши' ?
>
>
>
> ------------------------------
> *From:* owner-nginx-ru at mail.sysoev.ru [mailto:
> owner-nginx-ru at mail.sysoev.ru] *On Behalf Of *TDz TDz
> *Sent:* Sunday, June 03, 2007 7:18 PM
> *To:* nginx-ru at sysoev.ru
> *Subject:* Re: bugreport: при чтении из memcached препендятся случайные
> символы
>
> Лицезреть проблему можно на http://test.avaxhome.ru/
> Там почти всё из мемкеши и соответственно кракозябли везде, ситуация не
> меняется при использовании apt-get версий nginx/memcached
> Данные в мемкеш пишет само приложение (Ruby on Rails), оно же читает их
> верно оттуда (без символов), дебаг мемкаши тоже никаких сомволов лишних не
> показал
> Вот конфиг:
>
> user www-data;
> worker_processes 8;
>
> error_log logs/error.log;
> pid logs/nginx.pid;
>
> events {
> worker_connections 2048;
> use epoll;
> }
>
> http {
> include /etc/nginx/mime.types;
> default_type application/octet-stream;
>
> access_log off;
>
> sendfile on;
> tcp_nopush on;
>
> keepalive_timeout 65;
> tcp_nodelay on;
> gzip off;
>
>
> ## rails settings
> upstream mongrel
> {
> server 172.16.0.2:8000;
> server 172.16.0.2:8001;
> server 172.16.0.2:8002 ;
> server 172.16.0.2:8003;
> server 172.16.0.1:8000;
> server 172.16.0.1:8001;
> server 172.16.0.1:8002;
> server 172.16.0.1:8003;
> }
>
> server
> {
> listen 80;
> server_name test.avaxhome.ru;
>
> # setting for backend proxying
> proxy_set_header Host $http_host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_intercept_errors off;
>
>
> # static content
> location ~* ^/(javascripts|stylesheets|images)/.*$ {
> root /srv/www/localhost/avaxhome/current/public;
> expires 30d;
> }
>
>
> # fully dynamic content
> location ~* ^/(private_messages|news_mgr|search|login|comments).*$
> {
> proxy_pass http://mongrel; break;
> }
>
>
>
> # cached dynamic content
> location / {
> default_type text/html;
>
> # POST requests always go to backend
> if ($request_method = POST ) {
> proxy_pass http://mongrel; break;
> }
>
> set $memcached_key $uri;
> memcached_pass 172.16.0.2:11211;
>
> error_page 404 = /backend; #key not found
> error_page 502 = /backend; #mem not responding
> }
>
>
> # backend settings
> location = /backend {
> internal;
> proxy_pass http://mongrel;
> }
> }
> }
>
>
> 03.06.07, Igor Sysoev <is at rambler-co.ru> написал(а):
> >
> > On Sun, Jun 03, 2007 at 08:42:48AM +0400, Vladimir V. Perepelitsa wrote:
> >
> > > А случаем у тебя не Client-Transfer-Encoding: chunked?
> >
> > Да, похоже на чанки. В конце ответа всегда должен быть виден 0.
> > Вопрос в том, как эти ответы попали в memcached.
> >
> > > On 6/1/07, TDz TDz <tdz at modestus.org> wrote:
> > > >Хеллоу хотел сообщить о странном поведении nginx
> > > >после перехода на более новую версию nginx при чтении напрямую из
> > memcached
> > > >перед самой информацией выдаются 2 случайных символа, для каждой
> > страницы
> > > >они не меняются при рефреше но от страницы к странице отличаются
> > > >
> > > >nginx version: nginx/0.5.20
> > > >built by gcc 4.1.2 20061115 (prerelease) (Debian 4.1.1-21 ядро
> > 2.6.20.4
> > > >оптимизация под Opteron) из нестандартных configure arguments:
> > > >--with-cc-opt=-O3
> > > >
> > > >Ошибок в логе на этот счёт нет. Проверял данные в мемкеше чистые
> > > >
> > > >Я откачусь на более старую версию - если это не known issue
> > подскажите
> > > >какие
> > > >параметры нужно снять для анализа проблемы
> >
> >
> > --
> > Игорь Сысоев
> > http://sysoev.ru
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20070604/474a01d4/attachment.html>
More information about the nginx-ru
mailing list