RE: bugreport: при чтении из memcached препендятся случайные символы
Boguk Maxim
astar at rambler-co.ru
Mon Jun 4 12:16:21 MSD 2007
Я бы попробовал руками сделать 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/7b6d9ec8/attachment.html>
More information about the nginx-ru
mailing list