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