Error when using memcached_pass + "if statement" that evaluates to true

The following error occurs when any “if statement” evaluates to true
inside
of a context with a memcached_pass:
2007/12/22 05:47:42 [alert] 1333#0: worker process 1334 exited on signal
10

Here are some example files to demonstrate the error (remember to run
memcached):


nginx.conf

worker_processes 1;
events {
worker_connections 256;
}

http {
server {
listen 8084;
default_type text/html;

    location / {
      # If you comment out this if statement, or change != to =, the

error will not occur
if ($request != “”) {
# The following error occurs when any “if statement”
# evaluates to true inside of a context with a
memcached_pass:
# 2007/12/22 05:47:42 [alert] 1333#0: worker process 1334
exited
on signal 10
}

      set $memcached_key "NOT_IN_CACHE";
      memcached_pass localhost:11211;
      proxy_intercept_errors  on;
      error_page 404 502 = /cache_miss.html;
    }

    location /cache_miss.html {
      root /Users/larry/Sites/ngingx_request_uri;
    }
}

}

On Sat, Dec 22, 2007 at 05:52:25AM -0500, Larrytheliquid wrote:

worker_processes 1;
# If you comment out this if statement, or change != to =, the
proxy_intercept_errors on;
error_page 404 502 = /cache_miss.html;
}

    location /cache_miss.html {
      root /Users/larry/Sites/ngingx_request_uri;
    }
}

}

The attched patch shoudl fix the bug.