Package: libnginx-mod-http-cache-purge
Version: 1.11.6
Severity: important
Tags: upstream
Control: submitter klo...@uber.com

On Fri, Jun 30, 2017 at 10:36:16AM -0600, Mike Klopot wrote:
Hi,

It appears that somewhere between nginx versions 1.10.3 and 1.11.9 the
module provided by the libnginx-mod-http-cache-purge package has stopped
working completely.

The worker process gets killed with signal 11.

I can reliably reproduce this behavior:

syslog:
kernel: [28583513.474105] traps: nginx[27377] general protection
ip:7fdf652f3b67 sp:7ffcc89b1d58 error:0 in nginx[7fdf65281000+f6000]
___________________________
error.log debug info:
[alert] 7056#7056: worker process 27377 exited on signal 11
___________________________
Command:
curl -X PURGE -D - -o /dev/null http://127.0.0.1/
___________________________
Config:

proxy_cache_path /var/www/cache levels=1:2 keys_zone=mapserver_cache:8000m
max_size=400g;

server {
       listen 80 default_server;
       server_name $hostname;

       location / {
       proxy_cache mapserver_cache;
       proxy_pass http://spaz.org;
       proxy_cache_valid any 1d;
       proxy_cache_key    $uri;
       proxy_cache_purge PURGE from all;
       }
}
upstream spaz.org {
server spaz.org;
}

Is this a known issue, and what is the status?

I was able to reproduce the issue by hand, and by running the
module's nginx tests[0] using Debian's nginx packages.

This is fixed in an upstream pull request[1], and tests are passing as
expected. Unfortunately the upstream repo seams abandoned and nobody has merged
it yet. The module copies verbatim the ngx_http_proxy_loc_conf_t struct, but
the `method` member has changed in Nginx since 1.11.6.

Thanks a lot for your report, we will upload a fix in a few days.

[0] https://github.com/FRiCKLE/ngx_cache_purge/tree/master/t
[1] https://github.com/FRiCKLE/ngx_cache_purge/pull/51

Reply via email to