memcached upstream: exited on signal 11

Igor Sysoev is at rambler-co.ru
Wed Dec 26 13:09:54 MSK 2007


On Wed, Dec 26, 2007 at 10:32:51AM +0300, Andrey Ignatov wrote:

> On Wed, Dec 26, 2007 at 12:47:19AM +0300, Igor Sysoev wrote:
> > Проблема в том, что memcached_pass и "set $memcached_key ..." не наследуются
> > в конфигурацию внутри блока if. Прилагаемый патч разрешает использовать
> > memcached_pass внутри if. Конфигурация должна выглядеть так:
> > 
> >        	location / {
> >              if (...) {
> >                  set        $user_id        "$1";
> >                  set        $type           "$2";
> >                  set        $memcached_key  "blogfeed::$user_id::$type";
> >                  memcached_pass        192.168.0.205:11211;
> >              }
> > 
> >              set  ...
> > 
> >              set        $memcached_key        "blogfeed::$user_id::$type";
> >              memcached_pass        192.168.0.205:11211;
> >         }
> 
> Спасибо ! С патчем все работает.
> Игорь, будет ли этот патч включен в сл. версию nginx ?

Новый патч позволяет использовать первоначальную конфигурацию.


-- 
Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
Index: src/http/modules/ngx_http_memcached_module.c
===================================================================
--- src/http/modules/ngx_http_memcached_module.c	(revision 1096)
+++ src/http/modules/ngx_http_memcached_module.c	(working copy)
@@ -524,8 +524,6 @@
      *     conf->upstream.schema = { 0, NULL };
      *     conf->upstream.uri = { 0, NULL };
      *     conf->upstream.location = NULL;
-     *
-     *     conf->index = 0;
      */
 
     conf->upstream.connect_timeout = NGX_CONF_UNSET_MSEC;
@@ -548,6 +546,8 @@
     conf->upstream.pass_request_headers = 0;
     conf->upstream.pass_request_body = 0;
 
+    conf->index = NGX_CONF_UNSET;
+
     return conf;
 }
 
@@ -582,6 +582,15 @@
                                        |NGX_HTTP_UPSTREAM_FT_OFF;
     }
 
+    if (conf->upstream.upstream == NULL) {
+        conf->upstream.upstream = prev->upstream.upstream;
+        conf->upstream.schema = prev->upstream.schema;
+    }
+
+    if (conf->index == NGX_CONF_UNSET) {
+        conf->index = prev->index;
+    }
+
     return NGX_CONF_OK;
 }
 


More information about the nginx-ru mailing list