Worker process exited on signal 11

Dear all,

error logs show this error (worker process exited on signal 11). The
error appears after ~1 hour, then with the half of the worker processes.
No problems with 1.0-versions of nginx. Problem existed in 1.1.18
already.

I’m using a custom rpm build with the following additional modules:
–add-module=/root/rpm/SOURCES/agentzh-headers-more-nginx-module-3580526

–add-module=/root/rpm/SOURCES/FRiCKLE-ngx_cache_purge-e34bd2c
–add-module=/root/rpm/SOURCES/substitutions4nginx-read-only \

Here is the backtrace, any ideas?

Thank you.

2012/04/17 10:16:36 [alert] 20802#0: worker process 20808 exited on
signal 11 (core dumped)
2012/04/17 10:16:45 [alert] 20802#0: worker process 20805 exited on
signal 11 (core dumped)
2012/04/17 10:17:33 [alert] 20802#0: worker process 23616 exited on
signal 11 (core dumped)
2012/04/17 10:18:14 [alert] 20802#0: worker process 20806 exited on
signal 11 (core dumped)
2012/04/17 10:22:41 [alert] 20802#0: worker process 23892 exited on
signal 11 (core dumped)

dmesg:
nginx[20808]: segfault at 0000000000000020 rip 000000000042a47b rsp
00007fff79073f80 error 4
nginx[20805]: segfault at 0000000000000020 rip 000000000042a47b rsp
00007fff79073f80 error 4
nginx[23616]: segfault at 0000000000000020 rip 000000000042a47b rsp
00007fff79073ff0 error 4
nginx[20806]: segfault at 0000000000000020 rip 000000000042a47b rsp
00007fff79073f80 error 4
nginx[23892]: segfault at 0000000000000008 rip 000000000042cbe8 rsp
00007fff79073f20 error 6

gdb /usr/sbin/nginx /var/local/dumps/core
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type “show copying” to see the conditions.
There is absolutely no warranty for GDB. Type “show warranty” for
details.
This GDB was configured as “x86_64-suse-linux”…
Using host libthread_db library “/lib64/libthread_db.so.1”.
Reading symbols from /lib64/libpthread.so.0…done.
Loaded symbols for /lib64/libpthread.so.0
Reading symbols from /lib64/libcrypt.so.1…done.
Loaded symbols for /lib64/libcrypt.so.1
Reading symbols from /usr/lib64/libpcre.so.0…done.
Loaded symbols for /usr/lib64/libpcre.so.0
Reading symbols from /usr/lib64/libssl.so.0.9.8…done.
Loaded symbols for /usr/lib64/libssl.so.0.9.8
Reading symbols from /usr/lib64/libcrypto.so.0.9.8…done.
Loaded symbols for /usr/lib64/libcrypto.so.0.9.8
Reading symbols from /lib64/libdl.so.2…done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /lib64/libz.so.1…done.
Loaded symbols for /lib64/libz.so.1
Reading symbols from /usr/lib64/libGeoIP.so.1…done.
Loaded symbols for /usr/lib64/libGeoIP.so.1
Reading symbols from
/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so…done.
Loaded symbols for
/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so
Reading symbols from /lib64/libm.so.6…done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /lib64/libc.so.6…done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2…done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from
/usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/nginx/nginx.so…done.
Loaded symbols for
/usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/nginx/nginx.so
Core was generated by `nginx: worker pr’.
Program terminated with signal 11, Segmentation fault.
#0 0x000000000042cbe8 in ngx_readv_chain (c=0x2b508a1d43d0,
chain=0x602348) at src/os/unix/ngx_readv_chain.c:195
195 src/os/unix/ngx_readv_chain.c: No such file or directory.
in src/os/unix/ngx_readv_chain.c
(gdb) bt
#0 0x000000000042cbe8 in ngx_readv_chain (c=0x2b508a1d43d0,
chain=0x602348) at src/os/unix/ngx_readv_chain.c:195
#1 0x000000000042b133 in ngx_event_pipe (p=0x747170, do_write=) at src/event/ngx_event_pipe.c:271
#2 0x000000000045410e in ngx_http_upstream_process_upstream
(r=0x69ef00, u=0x746db8) at src/http/ngx_http_upstream.c:2641
#3 0x0000000000454269 in ngx_http_upstream_handler (ev=0x2b50cc7d9218)
at src/http/ngx_http_upstream.c:935
#4 0x0000000000428f64 in ngx_event_process_posted (cycle=0x5f6490,
posted=0x5d14a0) at src/event/ngx_event_posted.c:40
#5 0x000000000042fc36 in ngx_worker_process_cycle (cycle=0x5f6490,
data=) at src/os/unix/ngx_process_cycle.c:806
#6 0x000000000042e14d in ngx_spawn_process (cycle=0x5f6490,
proc=0x42fb70 <ngx_worker_process_cycle>, data=0x0, name=0x49e05e
“worker process”, respawn=5) at src/os/unix/ngx_process.c:198
#7 0x0000000000430c76 in ngx_master_process_cycle (cycle=0x5f6490) at
src/os/unix/ngx_process_cycle.c:622
#8 0x000000000041235d in main (argc=1, argv=) at
src/core/nginx.c:410
(gdb) backtrace full
#0 0x000000000042cbe8 in ngx_readv_chain (c=0x2b508a1d43d0,
chain=0x602348) at src/os/unix/ngx_readv_chain.c:195
prev = (u_char *) 0x0
n =
size = 0
err =
vec = {elts = 0x7fff79073f20, nelts = 0, size = 16, nalloc = 16,
pool = 0x5f57a0}
rev =
iov = (struct iovec *) 0x0
iovs = {{iov_base = 0x40000, iov_len = 140735223906344},
{iov_base = 0x69ef00, iov_len = 47624914552144}, {iov_base = 0x6024c0,
iov_len = 262144}, {iov_base = 0x1, iov_len = 4566241}, {
iov_base = 0x40000, iov_len = 6942464}, {iov_base = 0x2b508a1d4550,
iov_len = 0}, {iov_base = 0x0, iov_len = 47624930312022}, {iov_base =
0x69b6e0, iov_len = 6942464}, {
iov_base = 0x2b508a1d4550, iov_len = 6300864}, {iov_base = 0x40000,
iov_len = 1}, {iov_base = 0x602460, iov_len = 4367464}, {iov_base = 0x1,
iov_len = 2}, {iov_base = 0x0,
iov_len = 47624930399933}, {iov_base = 0x40000, iov_len = 4309842},
{iov_base = 0x2b50cc80e2e8, iov_len = 4370439}, {iov_base = 0x2b,
iov_len = 2}}
#1 0x000000000042b133 in ngx_event_pipe (p=0x747170, do_write=) at src/event/ngx_event_pipe.c:271
rc =
rev =
wev =
#2 0x000000000045410e in ngx_http_upstream_process_upstream
(r=0x69ef00, u=0x746db8) at src/http/ngx_http_upstream.c:2641
c = (ngx_connection_t *) 0x2b508a1d43d0
#3 0x0000000000454269 in ngx_http_upstream_handler (ev=0x2b50cc7d9218)
at src/http/ngx_http_upstream.c:935
c = (ngx_connection_t *) 0x2b508a1d4550
r = (ngx_http_request_t *) 0x69ef00
u = (ngx_http_upstream_t *) 0x746db8
#4 0x0000000000428f64 in ngx_event_process_posted (cycle=0x5f6490,
posted=0x5d14a0) at src/event/ngx_event_posted.c:40
ev = (ngx_event_t *) 0x2b50cc7d9218
#5 0x000000000042fc36 in ngx_worker_process_cycle (cycle=0x5f6490,
data=) at src/os/unix/ngx_process_cycle.c:806
i = 0
c =
#6 0x000000000042e14d in ngx_spawn_process (cycle=0x5f6490,
proc=0x42fb70 <ngx_worker_process_cycle>, data=0x0, name=0x49e05e
“worker process”, respawn=5) at src/os/unix/ngx_process.c:198
on = 1
pid = 0
s = 5
#7 0x0000000000430c76 in ngx_master_process_cycle (cycle=0x5f6490) at
src/os/unix/ngx_process_cycle.c:622
title =
p =
size = 9
i =
n = 432
sigio = 0
set = {__val = {0 <repeats 16 times>}}
itv = {it_interval = {tv_sec = 0, tv_usec = 6251688}, it_value =
{tv_sec = 0, tv_usec = 47624916165168}}
live = 1
delay = 0
ccf = (ngx_core_conf_t *) 0x5f74f0
#8 0x000000000041235d in main (argc=1, argv=) at
src/core/nginx.c:410
i =
log = (ngx_log_t *) 0x5ce6e0
cycle = (ngx_cycle_t *) 0x5f6490
init_cycle = {conf_ctx = 0x0, pool = 0x5f5440, log = 0x5ce6e0,
new_log = {log_level = 0, file = 0x0, connection = 0, handler = 0, data
= 0x0, action = 0x0}, files = 0x0,
free_connections = 0x0, free_connection_n = 0,
reusable_connections_queue = {prev = 0x0, next = 0x0}, listening = {elts
= 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0}, pathes = {
elts = 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0}, open_files
= {last = 0x0, part = {elts = 0x0, nelts = 0, next = 0x0}, size = 0,
nalloc = 0, pool = 0x0}, shared_memory = {
last = 0x0, part = {elts = 0x0, nelts = 0, next = 0x0}, size = 0,
nalloc = 0, pool = 0x0}, connection_n = 0, files_n = 0, connections =
0x0, read_events = 0x0, write_events = 0x0,
old_cycle = 0x0, conf_file = {len = 21, data = 0x4998b3
“/etc/nginx/nginx.conf”}, conf_param = {len = 0, data = 0x0},
conf_prefix = {len = 11, data = 0x4998b3 “/etc/nginx/nginx.conf”},
prefix = {len = 6, data = 0x4998ac “/usr//”}, lock_file = {len = 0,
data = 0x0}, hostname = {len = 0, data = 0x0}}
ccf = (ngx_core_conf_t *) 0x5f74f0

Posted at Nginx Forum:

sorry, forgot uname -a:

Linux hostname 2.6.16.60-0.42.10-smp #1 SMP Tue Apr 27 05:11:27 UTC 2010
x86_64 x86_64 x86_64 GNU/Linux

nginx -V
nginx version: nginx/1.1.19
built by gcc 4.1.2 20070115 (SUSE Linux)
TLS SNI support disabled
configure arguments:
–add-module=/root/rpm/SOURCES/agentzh-headers-more-nginx-module-3580526
–add-module=/root/rpm/SOURCES/FRiCKLE-ngx_cache_purge-e34bd2c
–add-module=/root/rpm/SOURCES/substitutions4nginx-read-only
–with-debug --prefix=/usr/ --sbin-path=/usr/sbin/nginx
–conf-path=/etc/nginx/nginx.conf
–error-log-path=/var/log/nginx/error_log
–http-log-path=/var/log/nginx/access_log --pid-path=/var/run/nginx.pid
–lock-path=/var/run/nginx.lock
–http-client-body-temp-path=/var/lib/nginx/tmp/
–http-proxy-temp-path=/var/lib/nginx/proxy/
–http-fastcgi-temp-path=/var/lib/nginx/fastcgi/
–http-uwsgi-temp-path=/var/lib/nginx/uwsgi/
–http-scgi-temp-path=/var/lib/nginx/scgi/ --user=wwwrun --group=www
–with-rtsig_module --with-select_module --with-poll_module --with-ipv6
–with-http_ssl_module --with-http_realip_module
–with-http_addition_module --with-http_geoip_module
–with-http_sub_module --with-http_dav_module --with-http_flv_module
–with-http_gzip_static_module --with-http_random_index_module
–with-http_secure_link_module --with-http_degradation_module
–with-http_stub_status_module --with-http_perl_module
–with-perl=/usr/bin/perl --with-mail --with-mail_ssl_module --with-pcre
–with-md5=/usr --with-sha1=/usr --with-cc-opt=‘-O2 -g
-fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector’

Posted at Nginx Forum:

Hello!

On Tue, Apr 17, 2012 at 09:44:13AM -0400, mscheel wrote:

–add-module=/root/rpm/SOURCES/FRiCKLE-ngx_cache_purge-e34bd2c
–add-module=/root/rpm/SOURCES/substitutions4nginx-read-only \

Are you able to reproduce this without 3rd party modules?

[…]

(gdb) bt
#0 0x000000000042cbe8 in ngx_readv_chain (c=0x2b508a1d43d0,
chain=0x602348) at src/os/unix/ngx_readv_chain.c:195

Please provide gdb output of the following commands:

fr 0
p chain
p *chain

#1 0x000000000042b133 in ngx_event_pipe (p=0x747170, do_write=) at src/event/ngx_event_pipe.c:271

fr 1
p *p

#2 0x000000000045410e in ngx_http_upstream_process_upstream
(r=0x69ef00, u=0x746db8) at src/http/ngx_http_upstream.c:2641

fr 2
p *r
p *u

[…]

It might be also helpful to see full configuration used.

Maxim D.

Hello!

On Wed, Apr 18, 2012 at 01:06:25AM -0400, mscheel wrote:

Hello Maxim,

it appears only on two productive servers. Compiling without these
modules is not possible at the moment but i’ve tried several times with
each module deactivated (and without any of these three).

Full config is huge. I’m using a php-fpm backend with keepalive on and
one upstream server with nginx and php-fpm.

[…]

proxy_set_header Connection “”; proxy_http_version 1.1;
include /etc/nginx/proxy.conf;

This part of the config shows proxy_pass, while gdb prints
provided say the request used fastcgi_pass. Could you please:

  1. Check processing flow of the
    “/nc/pdf-generation.html?pageID=776404” uri and provide relevant
    parts of the config. According to gdb it’s transformed to
    “/index.php?pageID=776404”.

  2. Check if the problem is reproduceable with the uri in question.

  3. Check if the problem persists with the upstream keepalive
    turned off.

It would be also cool to obtain debug log if possible, it should
be ok to grab one from a particular location with fastcgi_pass.

And see below from more gdb commands I would like to see output
from.

(gdb) p *chain
$2 = {buf = 0x602460, next = 0x752628}

fr 0
p *chain->buf
p *chain->next
p *chain->next->buf
p *chain->next->next
p *chain->next->next->buf

(repeat last two prints with one more “->next” added till it fails)

(gdb) fr 1
#1 0x000000000042b133 in ngx_event_pipe (p=0x747170, do_write=) at src/event/ngx_event_pipe.c:271
271 src/event/ngx_event_pipe.c: No such file or directory.
in src/event/ngx_event_pipe.c

(gdb) p *p
$3 = {upstream = 0x2b508a1d43d0, downstream = 0x2b508a1d4550,
free_raw_bufs = 0x0, in = 0x6024d0, last_in = 0x7523a0, out = 0x0, free
= 0x602450, busy = 0x0,

fr 1
p *p->in
p *p->in->buf
p *p->in->next
p *p->in->next->buf

(same here, repeat with “->next” added till it fails)

p *p->free
p *p->free->buf
p *p->free->next
p *p->free->next->buf

(same here)

[…]

Maxim D.

Hello Maxim,

it appears only on two productive servers. Compiling without these
modules is not possible at the moment but i’ve tried several times with
each module deactivated (and without any of these three).

Full config is huge. I’m using a php-fpm backend with keepalive on and
one upstream server with nginx and php-fpm.

http {
include mime.types;
include gzip.conf;
default_type application/octet-stream;
keepalive_timeout 240;
keepalive_requests 2000;
open_file_cache max=10000 inactive=3m;
open_file_cache_valid 3m;
open_file_cache_min_uses 2;
open_file_cache_errors off;
index wartung.html index.php index.html index.htm;
recursive_error_pages on;

large_client_header_buffers 8 256k;
client_max_body_size 1024m;
client_body_buffer_size 128K;
client_header_buffer_size 10k;
client_header_timeout 120;
client_body_timeout 120;
fastcgi_read_timeout 240;

set_real_ip_from x.x.x.0/24;
real_ip_header X-Forwarded-For;

nginx 1.0
#limit_zone spiders $binary_remote_addr 10m;
nginx 1.1
limit_conn_zone $binary_remote_addr zone=spiders:10m;

limit_req_zone $binary_remote_addr zone=spider_req:10m rate=5r/s;
limit_conn_log_level info;

upstream be_server_nginx {
server IP:80;
keepalive 300;
}
}

location @be_nginx {
proxy_pass http://be_server_nginx;
proxy_set_header Connection “”; proxy_http_version 1.1;
include /etc/nginx/proxy.conf;

output of gdb:

(gdb) fr 0
#0 0x000000000042cbe8 in ngx_readv_chain (c=0x2b508a1d43d0,
chain=0x602348) at src/os/unix/ngx_readv_chain.c:195
195 in src/os/unix/ngx_readv_chain.c

(gdb) p chain
$1 = (ngx_chain_t *) 0x602348

(gdb) p *chain
$2 = {buf = 0x602460, next = 0x752628}

(gdb) fr 1
#1 0x000000000042b133 in ngx_event_pipe (p=0x747170, do_write=) at src/event/ngx_event_pipe.c:271
271 src/event/ngx_event_pipe.c: No such file or directory.
in src/event/ngx_event_pipe.c

(gdb) p *p
$3 = {upstream = 0x2b508a1d43d0, downstream = 0x2b508a1d4550,
free_raw_bufs = 0x0, in = 0x6024d0, last_in = 0x7523a0, out = 0x0, free
= 0x602450, busy = 0x0,
input_filter = 0x47bc30 <ngx_http_fastcgi_input_filter>, input_ctx =
0x69ef00, output_filter = 0x43ca40 <ngx_http_output_filter>, output_ctx
= 0x69ef00, read = 0, cacheable = 0,
single_buf = 0, free_bufs = 1, upstream_done = 0, upstream_error = 0,
upstream_eof = 0, upstream_blocked = 0, downstream_done = 0,
downstream_error = 0, cyclic_temp_file = 0, allocated = 2,
bufs = {num = 10, size = 262144}, tag = 0x5c8480, busy_size = 262144,
read_length = 378731, length = 1, max_temp_file_size = 0,
temp_file_write_size = 524288, read_timeout = 180000,
send_timeout = 60000, send_lowat = 0, pool = 0x69b6e0, log = 0x6c5380,
preread_bufs = 0x0, preread_size = 129547, buf_to_file = 0x0, temp_file
= 0x602358, num = 6}

(gdb) fr 2
#2 0x000000000045410e in ngx_http_upstream_process_upstream
(r=0x69ef00, u=0x746db8) at src/http/ngx_http_upstream.c:2641
2641 src/http/ngx_http_upstream.c: No such file or directory.
in src/http/ngx_http_upstream.c

(gdb) p *r
$4 = {signature = 1347703880, connection = 0x2b508a1d4550, ctx =
0x69baf0, main_conf = 0x5f7910, srv_conf = 0x617f48, loc_conf =
0x640e00,
read_event_handler = 0x454510
<ngx_http_upstream_rd_check_broken_connection>, write_event_handler =
0x454b50 <ngx_http_upstream_process_downstream>, cache = 0x0, upstream =
0x746db8,
upstream_states = 0x747890, pool = 0x69b6e0, header_in = 0x6c5450,
headers_in = {headers = {last = 0x69ef70, part = {elts = 0x69c008, nelts
= 11, next = 0x0}, size = 48, nalloc = 20,
pool = 0x69b6e0}, host = 0x69c0f8, connection = 0x0,
if_modified_since = 0x0, if_unmodified_since = 0x0, user_agent =
0x69c098, referer = 0x69c038, content_length = 0x0,
content_type = 0x0, range = 0x0, if_range = 0x0, transfer_encoding =
0x0, expect = 0x0, accept_encoding = 0x69c0c8, via = 0x69c188,
authorization = 0x0, keep_alive = 0x0,
x_forwarded_for = 0x69c1b8, x_real_ip = 0x0, depth = 0x0,
destination = 0x0, overwrite = 0x0, date = 0x0, user = {len = 0, data =
0x0}, passwd = {len = 0, data = 0x0}, cookies = {
elts = 0x69c3c8, nelts = 1, size = 8, nalloc = 2, pool =
0x69b6e0}, server = {len = 22, data = 0x74eadb “domain.com”},
content_length_n = -1, keep_alive_n = -1,
connection_type = 2, msie = 1, msie6 = 0, opera = 0, gecko = 0,
chrome = 0, safari = 0, konqueror = 0}, headers_out = {headers = {last =
0x69f0c8, part = {elts = 0x69b730, nelts = 5,
next = 0x0}, size = 48, nalloc = 20, pool = 0x69b6e0}, status =
200, status_line = {len = 6, data = 0x4a2662 “200 OK”}, server =
0x69b790, date = 0x0, content_length = 0x0,
content_encoding = 0x69b7f0, location = 0x0, refresh = 0x0,
last_modified = 0x0, content_range = 0x0, accept_ranges = 0x0,
www_authenticate = 0x0, expires = 0x0, etag = 0x0,
override_charset = 0x0, content_type_len = 9, content_type = {len =
24, data = 0x747a0d “text/html; charset=utf-8”}, charset = {len = 5,
data = 0x747a20 “utf-8”},
content_type_lowcase = 0x602078 “text/html”, content_type_hash =
101824002410317, cache_control = {elts = 0x6016c8, nelts = 1, size = 8,
nalloc = 2, pool = 0x69b6e0}, content_length_n = -1,
date_time = 0, last_modified_time = -1}, request_body = 0x747270,
lingering_time = 0, start_sec = 1334650957, start_msec = 91, method = 2,
http_version = 1001, request_line = {len = 50,
data = 0x74e8c0 “GET /nc/pdf-generation.html?pageID=776404
HTTP/1.1\r\nAccept”}, uri = {len = 10, data = 0x746d62 “/index.php”},
args = {len = 13, data = 0x746a8f “pageID=776404”}, exten = {
len = 3, data = 0x746d69 “php”}, unparsed_uri = {len = 37, data =
0x74e8c4 “/nc/pdf-generation.html?pageID=776404 HTTP/1.1\r\nAccept”},
method_name = {len = 3,
data = 0x74e8c0 “GET /nc/pdf-generation.html?pageID=776404
HTTP/1.1\r\nAccept”}, http_protocol = {len = 8, data = 0x74e8ea
“HTTP/1.1\r\nAccept”}, out = 0x7523b8, main = 0x69ef00,
parent = 0x0, postponed = 0x0, post_subrequest = 0x0, posted_requests
= 0x0, virtual_names = 0x744098, phase_handler = 13, content_handler =
0x47b940 <ngx_http_fastcgi_handler>,
access_code = 0, variables = 0x69bc98, ncaptures = 0, captures =
0x69c580, captures_data = 0x746a84 “/index.php?pageID=776404”,
limit_rate = 0, header_size = 339, request_length = 785,
err_status = 0, http_connection = 0x6c53d8, log_handler = 0x442e60
<ngx_http_log_error_handler>, cleanup = 0x7478f0, subrequests = 201,
count = 1, blocked = 0, aio = 0, http_state = 2,
complex_uri = 0, quoted_uri = 0, plus_in_uri = 0, space_in_uri = 0,
invalid_header = 0, add_uri_to_alias = 0, valid_location = 1,
valid_unparsed_uri = 0, uri_changed = 0, uri_changes = 10,
request_body_in_single_buf = 0, request_body_in_file_only = 0,
request_body_in_persistent_file = 0, request_body_in_clean_file = 0,
request_body_file_group_access = 0,
request_body_file_log_level = 5, subrequest_in_memory = 0, waited = 0,
cached = 0, gzip_tested = 1, gzip_ok = 1, gzip_vary = 1, proxy = 0,
bypass_cache = 0, no_cache = 0, limit_conn_set = 1,
limit_req_set = 1, pipeline = 0, plain_http = 0, chunked = 1,
header_only = 0, keepalive = 1, lingering_close = 0, discard_body = 0,
internal = 1, error_page = 0, ignore_content_encoding = 0,
filter_finalize = 0, post_action = 0, request_complete = 0,
request_output = 1, header_sent = 1, expect_tested = 0, root_tested = 0,
done = 0, logged = 0, buffered = 0,
main_filter_need_in_memory = 1, filter_need_in_memory = 1,
filter_need_temporary = 0, allow_ranges = 0, stat_reading = 0,
stat_writing = 1, state = 0, header_hash = 6740241951503570450,
lowcase_index = 13, lowcase_header = “cache-controlsitiont”, ‘\0’
<repeats 11 times>,
header_name_start = 0x2b50cc8430b3
“^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×ÿÐßãߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^”…,
header_name_end = 0x2b50cc8430a8
“û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×ÿÐßãߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û”…,
header_start = 0x2b50cc8430aa
“uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×ÿÐßãߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯u”…,
header_end = 0x2b50cc8430b3
“^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×ÿÐßãߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^”…,
uri_start = 0x74e8c4 “/nc/pdf-generation.html?pageID=776404
HTTP/1.1\r\nAccept”, uri_end = 0x74e8e9 " HTTP/1.1\r\nAccept",
uri_ext = 0x74e8d7 “html?pageID=776404 HTTP/1.1\r\nAccept”, args_start
= 0x74e8dc “pageID=776404 HTTP/1.1\r\nAccept”,
request_start = 0x74e8c0 “GET /nc/pdf-generation.html?pageID=776404
HTTP/1.1\r\nAccept”, request_end = 0x74e8f2 “\r\nAccept”,
method_end = 0x74e8c2 “T /nc/pdf-generation.html?pageID=776404
HTTP/1.1\r\nAccept”, schema_start = 0x0, schema_end = 0x0, host_start =
0x0, host_end = 0x0, port_start = 0x0, port_end = 0x0,
http_minor = 1, http_major = 1}

(gdb) p *u
$5 = {read_event_handler = 0x454090
<ngx_http_upstream_process_upstream>, write_event_handler = 0x452980
<ngx_http_upstream_dummy_handler>, peer = {connection = 0x2b508a1d43d0,
sockaddr = 0x617ea8, socklen = 110, name = 0x68a6b0, tries = 1, get
= 0x487370 <ngx_http_upstream_get_keepalive_peer>, free = 0x4875b0
<ngx_http_upstream_free_keepalive_peer>,
data = 0x747908, set_session = 0x486e80
<ngx_http_upstream_keepalive_set_session>, save_session = 0x486e90
<ngx_http_upstream_keepalive_save_session>, local = 0x0, rcvbuf = 0,
log = 0x6c5380, cached = 1, log_error = 1}, pipe = 0x747170,
request_bufs = 0x747880, output = {buf = 0x0, in = 0x0, free = 0x0, busy
= 0x0, sendfile = 0, directio = 0, unaligned = 0,
need_in_memory = 0, need_in_temp = 0, alignment = 512, pool =
0x69b6e0, allocated = 0, bufs = {num = 1, size = 131072}, tag =
0x5c8480, output_filter = 0x414db0 <ngx_chain_writer>,
filter_ctx = 0x746eb0}, writer = {out = 0x0, last = 0x746eb0,
connection = 0x2b508a1d43d0, pool = 0x69b6e0, limit = 0}, conf =
0x6416a8, headers_in = {headers = {last = 0x746ee8, part = {
elts = 0x601520, nelts = 4, next = 0x0}, size = 48, nalloc = 8,
pool = 0x69b6e0}, status_n = 200, status_line = {len = 6, data =
0x4a2662 “200 OK”}, status = 0x0, date = 0x0,
server = 0x0, connection = 0x0, expires = 0x0, etag = 0x0,
x_accel_expires = 0x0, x_accel_redirect = 0x0, x_accel_limit_rate = 0x0,
content_type = 0x601580, content_length = 0x601520,
last_modified = 0x0, location = 0x0, accept_ranges = 0x0,
www_authenticate = 0x0, transfer_encoding = 0x0, content_encoding = 0x0,
content_length_n = 355230, cache_control = {
elts = 0x747a38, nelts = 1, size = 8, nalloc = 2, pool =
0x69b6e0}, connection_close = 0, chunked = 0}, resolved = 0x0, buffer =
{
pos = 0x2b50cc843010
“¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î”…,
last = 0x2b50cc843010
“¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î”…,
file_pos = 0, file_last = 0,
start = 0x2b50cc843010
“¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î”…,
end = 0x2b50cc883010 “”, tag = 0x5c8480, file = 0x0, shadow = 0x0,
temporary = 1, memory = 0, mmap = 0, recycled = 1, in_file = 0, flush =
0, sync = 0,
last_buf = 0, last_in_chain = 0, last_shadow = 0, temp_file = 0, num
= 2}, length = 355230, out_bufs = 0x0, busy_bufs = 0x0, free_bufs =
0x0,
input_filter_init = 0x47af80 <ngx_http_fastcgi_input_filter_init>,
input_filter = 0, input_filter_ctx = 0x0, create_key = 0x47c100
<ngx_http_fastcgi_create_key>,
create_request = 0x47c3a0 <ngx_http_fastcgi_create_request>,
reinit_request = 0x47af50 <ngx_http_fastcgi_reinit_request>,
process_header = 0x47cf20 <ngx_http_fastcgi_process_header>,
abort_request = 0x47b560 <ngx_http_fastcgi_abort_request>,
finalize_request = 0x47b530 <ngx_http_fastcgi_finalize_request>,
rewrite_redirect = 0, rewrite_cookie = 0, timeout = 0,
state = 0x7478b8, method = {len = 0, data = 0x0}, schema = {len = 10,
data = 0x4a8c69 “fastcgi://”}, uri = {len = 0, data = 0x0}, cleanup =
0x7478f0, store = 0, cacheable = 0, accel = 0,
ssl = 0, cache_status = 0, buffering = 1, keepalive = 0, request_sent
= 1, header_sent = 1}

Posted at Nginx Forum:

Hello Maxim, thanks alot for your help. I’ll try to reproduce it.

(gdb) fr 0
#0 0x000000000042cbe8 in ngx_readv_chain (c=0x2b508a1d43d0,
chain=0x602348) at src/os/unix/ngx_readv_chain.c:195
195 src/os/unix/ngx_readv_chain.c: No such file or directory.
in src/os/unix/ngx_readv_chain.c

(gdb) p *chain->buf
$6 = {pos = 0x0, last = 0x0, file_pos = 0, file_last = 0, start = 0x0,
end = 0x0, tag = 0x5c8480, file = 0x0, shadow = 0x0, temporary = 1,
memory = 0, mmap = 0, recycled = 1, in_file = 0,
flush = 0, sync = 0, last_buf = 0, last_in_chain = 0, last_shadow = 0,
temp_file = 0, num = 0}

(gdb) p *chain->next
$7 = {buf = 0x7523d8, next = 0x752638}

(gdb) p *chain->next->buf
$8 = {pos = 0x0, last = 0x0, file_pos = 0, file_last = 0, start = 0x0,
end = 0x0, tag = 0x5c8480, file = 0x0, shadow = 0x0, temporary = 1,
memory = 0, mmap = 0, recycled = 1, in_file = 0,
flush = 0, sync = 0, last_buf = 0, last_in_chain = 0, last_shadow = 0,
temp_file = 0, num = 0}

(gdb) p *chain->next->next
$9 = {buf = 0x746ff8, next = 0x0}

(gdb) p *chain->next->next->buf
$10 = {
pos = 0x2b50cc843010
“¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î”…,
last = 0x2b50cc843010
“¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î”…,
file_pos = 0, file_last = 0,
start = 0x2b50cc843010
“¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î”…,
end = 0x2b50cc883010 “”, tag = 0x5c8480, file = 0x0, shadow = 0x0,
temporary = 1, memory = 0, mmap = 0, recycled = 1, in_file = 0, flush =
0, sync = 0,
last_buf = 0, last_in_chain = 0, last_shadow = 0, temp_file = 0, num =
2}

(gdb) p *chain->next->next->next
Cannot access memory at address 0x0
(gdb) p *chain->next->next->next->buf
Cannot access memory at address 0x0


(gdb) fr 1
#1 0x000000000042b133 in ngx_event_pipe (p=0x747170, do_write=) at src/event/ngx_event_pipe.c:271
271 src/event/ngx_event_pipe.c: No such file or directory.
in src/event/ngx_event_pipe.c
(gdb) p *p->in
$11 = {buf = 0x7524d8, next = 0x7523a8}
(gdb) p *p->in->buf
$12 = {pos = 0x2b50cc908010 “½:÷ü>Gò\223ÿ”, last = 0x2b50cc918008
“\001\006”, file_pos = 0, file_last = 0, start = 0x2b50cc908010
“½:÷ü>Gò\223ÿ”, end = 0x2b50cc948010 “”, tag = 0x5c8480,
file = 0x0, shadow = 0x752528, temporary = 1, memory = 0, mmap = 0,
recycled = 1, in_file = 0, flush = 0, sync = 0, last_buf = 0,
last_in_chain = 0, last_shadow = 0, temp_file = 0, num = 4}
(gdb) p *p->in->next
$13 = {buf = 0x752528, next = 0x752398}
(gdb) p *p->in->next->buf
$14 = {pos = 0x2b50cc918010 “tú|=\036oøG_ý\227\027ÉïüU)ÿ”, last =
0x2b50cc91be90 “”, file_pos = 0, file_last = 0, start = 0x2b50cc908010
“½:÷ü>Gò\223ÿ”, end = 0x2b50cc948010 “”, tag = 0x5c8480,
file = 0x0, shadow = 0x752478, temporary = 1, memory = 0, mmap = 0,
recycled = 1, in_file = 0, flush = 0, sync = 0, last_buf = 0,
last_in_chain = 0, last_shadow = 1, temp_file = 0, num = 4}
(gdb) p *p->in->next->next
$15 = {buf = 0x7525d8, next = 0x0}
(gdb) p p->in->next->next->buf
$16 = {
pos = 0x2b50cc949010
"gƲdäz\211»\017\027ÜÈ\026\225h^3¦\217?}\221&NG\230N\033ÏÉ.\207¼\222ñ=R\215þí\037\224|É«N\224¬\206Þ\205)J\003%dY\2348\235¥5[UnJ+¶à6&¬pÒz.K\203¼ZG©YJvõ\025óbZM«\227,\016×\236’YrKFoqhN\223\022L\213z{Ïi,\226?\b\t)\033\217Ó\225V÷\005*÷¥W¶^>ÞU«¢$­ÿ", last = 0x2b50cc9518f0 "", file_pos = 0, file_last = 0, start = 0x2b50cc949010 "gƲdäz\211»\017\027ÜÈ\026\225h^3¦\217?}\221&NG\230N\033ÏÉ.\207¼\222ñ=R\215þí\037\224|É«N\224¬\206Þ\205)J\003%dY\2348\235¥5[UnJ+¶à6&¬pÒz.K\203¼ZG©YJvõ\025óbZM«\227,\016×\236'YrKFoqhN\223\022L\213z{Ïi,\226?\b\t)\033\217Ó\225V÷\005
÷¥W¶^>ÞU«¢$­ÿ",
end = 0x2b50cc989010 “”, tag = 0x5c8480, file = 0x0, shadow = 0x752578,
temporary = 1, memory = 0, mmap = 0,
recycled = 1, in_file = 0, flush = 0, sync = 0, last_buf = 0,
last_in_chain = 0, last_shadow = 1, temp_file = 0, num = 5}
(gdb) p *p->in->next->next->next
Cannot access memory at address 0x0


(gdb) p *p->free
$17 = {buf = 0x752428, next = 0x752290}
(gdb) p *p->free->buf
$18 = {
pos = 0x2b50cc843010
“¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î”…,
last = 0x2b50cc843010
“¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î”…,
file_pos = 0, file_last = 0,
start = 0x2b50cc843010
“¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î½×½û¯uï~ëÝ{ߺ÷^÷î”…,
end = 0x2b50cc883010 “”, tag = 0x5c8480, file = 0x0, shadow = 0x0,
temporary = 1, memory = 0, mmap = 0, recycled = 1, in_file = 0, flush =
0, sync = 0,
last_buf = 0, last_in_chain = 0, last_shadow = 0, temp_file = 0, num =
2}
(gdb) p *p->free->next
$19 = {buf = 0x7523d8, next = 0x6024b0}
(gdb) p *p->free->next->buf
$20 = {pos = 0x0, last = 0x0, file_pos = 0, file_last = 0, start = 0x0,
end = 0x0, tag = 0x5c8480, file = 0x0, shadow = 0x0, temporary = 1,
memory = 0, mmap = 0, recycled = 1, in_file = 0,
flush = 0, sync = 0, last_buf = 0, last_in_chain = 0, last_shadow = 0,
temp_file = 0, num = 0}
(gdb)
$21 = {pos = 0x0, last = 0x0, file_pos = 0, file_last = 0, start = 0x0,
end = 0x0, tag = 0x5c8480, file = 0x0, shadow = 0x0, temporary = 1,
memory = 0, mmap = 0, recycled = 1, in_file = 0,
flush = 0, sync = 0, last_buf = 0, last_in_chain = 0, last_shadow = 0,
temp_file = 0, num = 0}
(gdb) p *p->free->next->next
$22 = {buf = 0x602460, next = 0x6024c0}
(gdb) p *p->free->next->next->buf
$23 = {pos = 0x0, last = 0x0, file_pos = 0, file_last = 0, start = 0x0,
end = 0x0, tag = 0x5c8480, file = 0x0, shadow = 0x0, temporary = 1,
memory = 0, mmap = 0, recycled = 1, in_file = 0,
flush = 0, sync = 0, last_buf = 0, last_in_chain = 0, last_shadow = 0,
temp_file = 0, num = 0}
(gdb) p *p->free->next->next->next
$24 = {buf = 0x7510f0, next = 0x0}
(gdb) p *p->free->next->next->next->buf
$25 = {pos = 0x0, last = 0x0, file_pos = 0, file_last = 0, start = 0x0,
end = 0x0, tag = 0x5c8480, file = 0x0, shadow = 0x0, temporary = 1,
memory = 0, mmap = 0, recycled = 1, in_file = 0,
flush = 0, sync = 0, last_buf = 0, last_in_chain = 0, last_shadow = 0,
temp_file = 0, num = 0}
(gdb) p *p->free->next->next->next->next
Cannot access memory at address 0x0
(gdb) p *p->free->next->next->next->next->buf
Cannot access memory at address 0x0

Posted at Nginx Forum:

Hello!

On Wed, Apr 18, 2012 at 07:13:02AM -0400, mscheel wrote:

end = 0x0, tag = 0x5c8480, file = 0x0, shadow = 0x0, temporary = 1,
memory = 0, mmap = 0, recycled = 1, in_file = 0,
flush = 0, sync = 0, last_buf = 0, last_in_chain = 0, last_shadow = 0,
temp_file = 0, num = 0}

(gdb) p *chain->next->next
$9 = {buf = 0x746ff8, next = 0x0}

[…]

Ok, thanks. The buffer chain looks completely screwed up, and I
suspect the culprit is substitutions4nginx module you use. Quick
look over it’s sources suggests it at least changes the
last_shadow flag of the buffers it gets, and this may cause
undefined behaviour.

Additionally, the response in question has Content-Type set to
“text/html” (though it looks like the actual response is pdf), which
is handled by substitutions4nginx by default.

Could you please try to reproduce the problem without the module
in question?

Maxim D.

Thanks. Do you think it’s necessary to create a new rpm without this
module or will it be sufficient to turn it off in the configs?
I’ll disable the config now.

Posted at Nginx Forum:

Hello!

On Wed, Apr 18, 2012 at 11:12:11AM -0400, mscheel wrote:

Thanks. Do you think it’s necessary to create a new rpm without this
module or will it be sufficient to turn it off in the configs?
I’ll disable the config now.

It should be sufficient to disable it in config (that is,
remove/comment out all “subs_filter” directives).

Maxim D.

Interesting, i’m unable to reproduce it with the uri. The uri generates
a pdf file (when it does not exist on the fs). I’ve deleted it on the fs
and it’s created fine by our php application. I’ve also made some tests
with keepalive off, no change.
Maybe there is something missing in SLES 10 which is required by 1.1? A
manual configure and make (without install) with my nginx -V runs
without errors.

My fastcgi_params:
set $php_root /docroot;
root $php_root;
try_files $uri $uri/ @404;
fastcgi_pass php-fpm_backend;
fastcgi_keep_conn on;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $php_root$fastcgi_script_name;

fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;

fastcgi_param REMOTE_ADDR $HTTP_X_FORWARDED_FOR;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
#fastcgi_param SERVER_NAME $server_name;
#fastcgi_param HOST_LSG $http_host;
fastcgi_param HTTP_REFERER $http_referer;
fastcgi_param HTTPS $https_ms;

fastcgi_pass_header HTTP_HOST;
fastcgi_pass_header SERVER_NAME;
fastcgi_pass_header HOST;
fastcgi_pass_header SERVER_NAME;
fastcgi_pass_header X-REAL-IP;
fastcgi_pass_header X-FORWARDED-PROTO;
fastcgi_pass_header X-FORWARDED-FOR;

Posted at Nginx Forum:

Hello Maxim, until now no signal 11 occured without substitutions4nginx.
It’s interesting that such errors do not occur in 1.0. I’ll contact the
developer of this module, maybe he can help or fix it. We’re parsing the
content with regexp to rewrite links to another domain, mainly for
external CDN domains.

Thank you very much for your help.

Posted at Nginx Forum: