memcached upstream: exited on signal 11
Andrey Ignatov
andr.pl at gmail.com
Mon Dec 24 15:39:45 MSK 2007
On Mon, Dec 24, 2007 at 11:48:57AM +0300, Andrey Ignatov wrote:
> On Thu, Dec 20, 2007 at 08:02:18PM +0300, Andrey Ignatov wrote:
> > Использую memcached бекенд в nginx. В результате воркер, на который
> > приходит запрос падает в корку от первого же запроса.
>
> Игорь, можете прокомментировать ситуацию ?
Вот минимальный конфиг, с которым у меня стабильно падает (пробовал на
двух разных серверах - freebsd 5.4 и 6.2):
config #1
------------------------------------------------------------------------
user www www;
worker_processes 2;
error_log /var/log/nginx-error.log info;
events {
worker_connections 8192;
use kqueue;
debug_connection 192.168.18.14;
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 192.168.18.250;
server_name domain.tdl;
location / {
if ($request_uri ~ "\/(\d+)\/blogs\.(rss|rss2|atom)\.xml$") {
set $user_id "$1";
set $type "$2";
}
#set $user_id "788";
#set $type "rss2";
set $memcached_key "blogfeed::$user_id::$type";
memcached_pass 192.168.0.205:11211;
}
}
}
------------------------------------------------------------------------
Причем, если закомментировать блок if и раскомментировать set'ы, где
переменные задаются явно, то падать перестает (пусть это будет config #2).
Запрос делается такой: http://domain.tdl/788/788/blogs.rss2.xml
Еще заметил, что при работе с config #1, в дебаг-логе получаем:
http memcached request: "/788/788/blogs.rss2.xml"
Т.е. $memcached_key почему то стал равен $uri.
При работе же с config #2, получаем как задумано:
http memcached request: "blogfeed::788::rss2"
Однажды вообще получил:
http memcached request: "192.168.18.14"
Т.е. переменной $memcached_key был присвое IP заданный в
debug_connection. Но эту ситуацию у меня воспроизвести не получилось
пока.
Игорь, может нужна еще какая-то информация ?
--
Andrey Ignatov
Skript, System administrator
More information about the nginx-ru
mailing list