Worker dies with a segfault error

Hello,

Hello,

I have an issue with segfaults especially when I send lot’s of traffic
to
the server. The hardware is an HP proliant G8 with 24 cores but I am
using
only one worker because the problem becames worse with more than one. I
have
also modified the ulimit for the nginx user up to 65535 but I am still
getting the segfaults. I have also tried various nginx versions from
1.3.9
up to the latest 1.5.9. In one of the tests I have also removed the two
modules I am using. Finally I am using nginx as a proxy only.

Feb 24 13:08:19 -00 kernel: nginx[23543]: segfault at 20 ip
0000000000405d3f
sp 00007fffc66ab600 error 4 in nginx[400000+92000]
Feb 24 13:09:12 a1-00 kernel: nginx[23547]: segfault at 20 ip
0000000000405d3f sp 00007fffc66ab600 error 4 in nginx[400000+92000]
Feb 24 13:09:43 a1-00 kernel: nginx[23584]: segfault at 20 ip
0000000000405d3f sp 00007fff0f2f3b80 error 4 in nginx[400000+92000]
Feb 24 13:10:20 a1-00 kernel: nginx[23592]: segfault at 20 ip
0000000000405d3f sp 00007fff0f2f3be0 error 4 in nginx[400000+92000]
Feb 24 13:12:06 a1-00 kernel: nginx[23671]: segfault at 20 ip
0000000000405d3f sp 00007fff0f2f3be0 error 4 in nginx[400000+92000]

nginx version: nginx/1.5.9
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
configure arguments: --add-module=/software/ngx_postgres-master-1.5
–add-module=/software/nginx-eval-module-master --user=nginx
–with-debug

Red Hat Enterprise Linux Server release 6.5 (Santiago)
Linux ape-00 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013
x86_64 x86_64 x86_64 GNU/Linux

Thanks

BR/Kostas

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,247886,247886#msg-247886

Hello!

On Mon, Feb 24, 2014 at 06:34:41AM -0500, greekduke wrote:

modules I am using. Finally I am using nginx as a proxy only.
0000000000405d3f sp 00007fff0f2f3be0 error 4 in nginx[400000+92000]

nginx version: nginx/1.5.9
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
configure arguments: --add-module=/software/ngx_postgres-master-1.5
–add-module=/software/nginx-eval-module-master --user=nginx --with-debug

Red Hat Enterprise Linux Server release 6.5 (Santiago)
Linux ape-00 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013
x86_64 x86_64 x86_64 GNU/Linux

http://wiki.nginx.org/Debugging#Asking_for_help


Maxim D.
http://nginx.org/

Hello,

The debug log is huge. Any ideas where to uploaded?

BR/Kostas

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,247886,247891#msg-247891

Hello

Finally I managed to get a core dump and below is the output:

[[email protected] nginx]# gdb /usr/local/nginx/sbin/nginx
/var/log/nginx/core.31000
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1)
Copyright © 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type “show
copying”
and “show warranty” for details.
This GDB was configured as “x86_64-redhat-linux-gnu”.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/
Reading symbols from /usr/local/nginx/sbin/nginx…done.
[New Thread 31000]
Missing separate debuginfo for /usr/local/pgsql/lib/libpq.so.5
Try: yum --disablerepo=’’ --enablerepo=’-debug*’ install
/usr/lib/debug/.build-id/50/df7babee4e7e51a305aed74590ad3d040c5ffb
Missing separate debuginfo for
Try: yum --disablerepo=’’ --enablerepo=’-debug*’ install
/usr/lib/debug/.build-id/81/a81be2e44c93640adedb62adc93a47f4a09dd1
Reading symbols from /lib64/libpthread.so.0…(no debugging symbols
found)…done.
[Thread debugging using libthread_db enabled]
Loaded symbols for /lib64/libpthread.so.0
Reading symbols from /lib64/libcrypt.so.1…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libcrypt.so.1
Reading symbols from /usr/local/pgsql/lib/libpq.so.5…(no debugging
symbols
found)…done.
Loaded symbols for /usr/local/pgsql/lib/libpq.so.5
Reading symbols from /lib64/libpcre.so.0…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libpcre.so.0
Reading symbols from /usr/lib64/libcrypto.so.10…(no debugging symbols
found)…done.
Loaded symbols for /usr/lib64/libcrypto.so.10
Reading symbols from /lib64/libz.so.1…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libz.so.1
Reading symbols from /lib64/libc.so.6…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2…(no debugging symbols
found)…done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /lib64/libfreebl3.so…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libfreebl3.so
Reading symbols from /lib64/libdl.so.2…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /lib64/libnss_files.so.2…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libnss_files.so.2
Core was generated by `nginx: worker process
'.
Program terminated with signal 11, Segmentation fault.
#0 ngx_pnalloc (pool=0x0, size=950) at src/core/ngx_palloc.c:155
155 if (size <= pool->max) {
Missing separate debuginfos, use: debuginfo-install
glibc-2.12-1.132.el6.x86_64 nss-softokn-freebl-3.14.3-9.el6.x86_64
openssl-1.0.1e-15.el6.x86_64 pcre-7.8-6.el6.x86_64
zlib-1.2.3-29.el6.x86_64
(gdb)

################################## nginx.conf
###############################################

user nginx;
worker_processes 1;

error_log /var/log/nginx/error.log debug;
pid /var/run/nginx.pid;

events {
use epoll;
worker_connections 20480;
}
worker_rlimit_nofile 30000;

worker_rlimit_core 500M;
working_directory /var/log/nginx;

http {
include /usr/local/nginx/conf/mime.types;
default_type application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local]

“$request” ’
'$status $body_bytes_sent “$http_referer” ’
‘"$http_user_agent" “$http_x_forwarded_for”’;
log_format cdr '$remote_addr - $remote_user [$time_local]
“$request” ’
'$status $body_bytes_sent “$http_referer” ’
‘"$http_user_agent" “$http_x_forwarded_for” “$msisdn” “$apn”’;

    log_format  body $request_body;
    access_log  /var/log/nginx/body.log body;

    access_log  /var/log/nginx/access.log  main;

    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 300m;
    sendfile on;
    tcp_nopush     on;
    keepalive_timeout 60;
    tcp_nodelay on;

    #keepalive_timeout  65;
    client_body_in_file_only off;
    #client_body_in_single_buffer on;
    client_body_timeout 5s;

    #gzip  on;


    upstream db {
            postgres_server 10.9.115.6:9999 dbname=nodeb  user=nodeb

password=banana;
}

    server {
            listen       8000;

            location / {
                    #flv;
                    #mp4;
                    #mp4_buffer_size     4M;
                    #mp4_max_buffer_size 10M;
                    resolver 127.0.0.1;
                    eval_subrequest_in_memory  off;
                    set $test "";
                    set $apn "";
                    set $msisdn "";
                    set $ms "";
                    set $mmcurl 192.168.200.95;

                    eval $result {
                            postgres_pass     db;
                            postgres_query "select cast(count(url) 

as
varchar),‘0’ from urls where url like ‘%$http_host%’ union select
calledstationid,callingstationid from mappings where
framedipaddress=’$http_x_forwarded_for’";
postgres_output text;
}

                    # Get APN and MSISND from the result of the 

query
#if ($result ~ ([^,]*)){
if ($result ~ ([^,]+),([^,]+),([^,]+),([^,]+) ){
set $urlfound $1;
set $apn $3;
set $msisdn $4;
}

                    # Check is $msisdn is null
                    if ($msisdn = ""){
                            return   403;
                    }
                    # Check APN and destination host
                    if ($apn = test.wap){
                            set $test testwap;
                    }
                    if ($apn = oper-mms){
                            set $test testmms;
                    }
                    if ($apn = mms.domain.com){
                            set $test operMms;
                    }
                    if ($apn = wap.domain.com){
                            set $test operWap;
                    }
                    if ($http_host = $mmcurl){
                            set $test "${test}Mmsc";
                    }
                    if ($http_host != $mmcurl){
                            set $test "${test}Browsing";
                    }
                    if ($urlfound ){
                            set $test "${test}1";
                    }

                    if ($test = operMmsBrowsing) {
                            return   403;
                            break;
                    }
                    if ($test = operWapMmsc) {
                            return   403;
                            break;
                    }
                    if ($test = testwapMmsc) {
                            return   403;
                            break;
                    }
                    if ($test = testmmsBrowsing) {
                            return   403;
                            break;
                    }
                    if ($test = operMmsMmsc) {
                            set $ms $msisdn;
                    }
                    if ($test = operMmsMmsc) {
                            set $ms $msisdn;
                    }
                    if ($test = operMmsBrowsing1) {
                            set $ms $msisdn;
                    }
                    if ($test = testwapBrowsing1) {
                            set $ms $msisdn;
                    }
                    if ($test = testmmsMmsc) {
                            set $ms $msisdn;
                    }

                    access_log  /var/log/nginx/cdr.log  cdr;
                    error_log   /var/log/nginx/debug.log debug;
                    proxy_set_header   Host             $host;

                    proxy_set_header   "X-Nokia-msisdn" $ms;
                    proxy_pass http://$http_host$uri$is_args$args;
            }

            error_page   500 502 503 504  /50x.html;
            error_page   403  /403.html;

            location = /403.html {
                    root   html;
                    allow all;
            }

            location = /50x.html {
                    root   html;
                    allow all;
            }

            location = /testingpage.html {
                    root   html;
                    access_log  /var/log/nginx/lbprobe.log  main;
            }
    }

}

#########################################################################################

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,247886,248074#msg-248074

Hello!

On Tue, Mar 04, 2014 at 09:33:56AM -0500, greekduke wrote:

Hello

Finally I managed to get a core dump and below is the output:

[[email protected] nginx]# gdb /usr/local/nginx/sbin/nginx
/var/log/nginx/core.31000
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1)

[…]

Loaded symbols for /lib64/libnss_files.so.2
Core was generated by `nginx: worker process
'.
Program terminated with signal 11, Segmentation fault.
#0 ngx_pnalloc (pool=0x0, size=950) at src/core/ngx_palloc.c:155
155 if (size <= pool->max) {
Missing separate debuginfos, use: debuginfo-install
glibc-2.12-1.132.el6.x86_64 nss-softokn-freebl-3.14.3-9.el6.x86_64
openssl-1.0.1e-15.el6.x86_64 pcre-7.8-6.el6.x86_64 zlib-1.2.3-29.el6.x86_64
(gdb)

backtrace?

[…]

                    eval $result {
                            postgres_pass     db;
                            postgres_query "select cast(count(url) as

Note well that looking at your config suggests that the problem
is in 3rd party module you use (either eval or postgres). In your
original message you’ve claimed that you have segfaults without
3rd party modules. It’s a good idea to reproduce the problem
without 3rd party modules.


Maxim D.
http://nginx.org/

Hello

Below is the backtrace. I have seen the behaviour without eval and
Postgres
and I will try to take a trace tomorrow. In the debug log actually there
is
no error. Since I have only one worker the PID just changes to the new
worker without any info. Since I am using nginx as proxy only I am
suspecting that the error has to do with the proxy functionality.

[[email protected] nginx]# gdb /usr/local/nginx/sbin/nginx
/var/log/nginx/core.31000
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1)
Copyright © 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type “show
copying”
and “show warranty” for details.
This GDB was configured as “x86_64-redhat-linux-gnu”.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/
Reading symbols from /usr/local/nginx/sbin/nginx…done.
[New Thread 31000]
Missing separate debuginfo for /usr/local/pgsql/lib/libpq.so.5
Try: yum --disablerepo=’’ --enablerepo=’-debug*’ install
/usr/lib/debug/.build-id/50/df7babee4e7e51a305aed74590ad3d040c5ffb
Missing separate debuginfo for
Try: yum --disablerepo=’’ --enablerepo=’-debug*’ install
/usr/lib/debug/.build-id/81/a81be2e44c93640adedb62adc93a47f4a09dd1
Reading symbols from /lib64/libpthread.so.0…(no debugging symbols
found)…done.
[Thread debugging using libthread_db enabled]
Loaded symbols for /lib64/libpthread.so.0
Reading symbols from /lib64/libcrypt.so.1…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libcrypt.so.1
Reading symbols from /usr/local/pgsql/lib/libpq.so.5…(no debugging
symbols
found)…done.
Loaded symbols for /usr/local/pgsql/lib/libpq.so.5
Reading symbols from /lib64/libpcre.so.0…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libpcre.so.0
Reading symbols from /usr/lib64/libcrypto.so.10…(no debugging symbols
found)…done.
Loaded symbols for /usr/lib64/libcrypto.so.10
Reading symbols from /lib64/libz.so.1…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libz.so.1
Reading symbols from /lib64/libc.so.6…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2…(no debugging symbols
found)…done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /lib64/libfreebl3.so…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libfreebl3.so
Reading symbols from /lib64/libdl.so.2…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /lib64/libnss_files.so.2…(no debugging symbols
found)…done.
Loaded symbols for /lib64/libnss_files.so.2
Core was generated by `nginx: worker process
'.
Program terminated with signal 11, Segmentation fault.
#0 ngx_pnalloc (pool=0x0, size=950) at src/core/ngx_palloc.c:155
155 if (size <= pool->max) {
Missing separate debuginfos, use: debuginfo-install
glibc-2.12-1.132.el6.x86_64 nss-softokn-freebl-3.14.3-9.el6.x86_64
openssl-1.0.1e-15.el6.x86_64 pcre-7.8-6.el6.x86_64
zlib-1.2.3-29.el6.x86_64
(gdb) backtrace full
#0 ngx_pnalloc (pool=0x0, size=950) at src/core/ngx_palloc.c:155
m =
p =
#1 0x0000000000437b20 in ngx_http_log_handler (r=0x1bfb540) at
src/http/modules/ngx_http_log_module.c:323
line =
p =
len = 950
i =
l =
log =
op = 0x19d6358
buffer =
lcf = 0x19e8b18
#2 0x000000000042d9dd in ngx_http_log_request (r=0x1bfb540) at
src/http/ngx_http_request.c:3455
i =
n = 1
log_handler = 0x1a02868
#3 0x000000000042e04e in ngx_http_free_request (r=0x1bfb540, rc=0) at
src/http/ngx_http_request.c:3402
log = 0x1b400f0
pool =
linger = {l_onoff = 568, l_linger = 0}
cln = 0x0
ctx =
#4 0x000000000042fe5b in ngx_http_set_keepalive (r=0x1bfb540) at
src/http/ngx_http_request.c:2840
tcp_nodelay =
rev = 0x7fc3cce9d3f8
b = 0x1b402d0
—Type to continue, or q to quit—
i =
f =
wev =
c = 0x7fc3cd0a74d0
hc = 0x1b40138
clcf = 0x19e8890
#5 ngx_http_finalize_connection (r=0x1bfb540) at
src/http/ngx_http_request.c:2483
clcf = 0x19e8890
#6 0x0000000000430724 in ngx_http_finalize_request (r=0x1bfb540, rc=-4)
at
src/http/ngx_http_request.c:2213
c = 0x7fc3cd0a74d0
pr =
#7 0x000000000042be5d in ngx_http_core_content_phase (r=0x1bfb540,
ph=0x1a03468) at src/http/ngx_http_core_module.c:1410
root = 4369847
rc =
path = {len = 28761224, data = 0x19bdde0 “\320\353\233\001”}
#8 0x0000000000426873 in ngx_http_core_run_phases (r=0x1bfb540) at
src/http/ngx_http_core_module.c:888
rc =
ph = 0x1a03378
cmcf =
#9 0x000000000042db58 in ngx_http_run_posted_requests
(c=0x7fc3cd0a74d0) at
src/http/ngx_http_request.c:2171
r = 0x1bfb540
ctx =
pr =
#10 0x0000000000440cfb in ngx_http_upstream_handler (ev=0x7fc3cce9e438)
at
src/http/ngx_http_upstream.c:980
c = 0x7fc3cd0a74d0
r = 0x1b6d1d0
ctx =
—Type to continue, or q to quit—
u = 0x1b6dc88
#11 0x0000000000423257 in ngx_epoll_process_events (cycle=0x19bdde0,
timer=, flags=)
at src/event/modules/ngx_epoll_module.c:691
events = 1
revents = 5
instance =
i =
level =
err =
rev = 0x7fc3cce9e438
wev =
queue =
c = 0x7fc3cd0a92d0
#12 0x000000000041abd3 in ngx_process_events_and_timers
(cycle=0x19bdde0) at
src/event/ngx_event.c:248
flags = 1
timer = 4998
delta = 1393942527536
#13 0x0000000000421a82 in ngx_worker_process_cycle (cycle=0x19bdde0,
data=)
at src/os/unix/ngx_process_cycle.c:816
worker =
i =
c =
#14 0x00000000004201ac in ngx_spawn_process (cycle=0x19bdde0,
proc=0x42198c
<ngx_worker_process_cycle>, data=0x0,
name=0x4771b3 “worker process”, respawn=-3) at
src/os/unix/ngx_process.c:198
on = 1
pid = 0
s = 0
—Type to continue, or q to quit—
#15 0x0000000000420e9a in ngx_start_worker_processes (cycle=0x19bdde0,
n=1,
type=-3) at src/os/unix/ngx_process_cycle.c:364
i =
ch = {command = 1, pid = 0, slot = 0, fd = 0}
#16 0x0000000000422103 in ngx_master_process_cycle (cycle=0x19bdde0) at
src/os/unix/ngx_process_cycle.c:136
title = 0x1a03543 “master process /usr/local/nginx/sbin/nginx -c
/usr/local/nginx/conf/nginx.conf”
p =
size = 79
i = 3
n =
sigio =
set = {__val = {0 <repeats 16 times>}}
itv = {it_interval = {tv_sec = 26996763, tv_usec = 0}, it_value

{tv_sec = 0, tv_usec = 0}}
live =
delay =
ls =
ccf = 0x19bed58
#17 0x0000000000404e24 in main (argc=, argv=) at src/core/nginx.c:407
i =
log = 0x6a0fa0
cycle = 0x19bdde0
init_cycle = {conf_ctx = 0x0, pool = 0x19bd8f0, log = 0x6a0fa0,
new_log = {log_level = 0, file = 0x0, connection = 0,
handler = 0, data = 0x0, action = 0x0, next = 0x0},
log_use_stderr = 0, 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}, paths = {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 = 32,
—Type to continue, or q to quit—
data = 0x7fff2bd1df50 “”}, conf_param = {len = 0, data =
0x0},
conf_prefix = {len = 22, data = 0x7fff2bd1df50 “”},
prefix = {len = 17, data = 0x472f78 “/usr/local/nginx/”},
lock_file = {len = 0, data = 0x0}, hostname = {len = 0,
data = 0x0}}
ccf =
(gdb)

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,247886,248076#msg-248076

Hello!

On Tue, Mar 04, 2014 at 10:07:28AM -0500, greekduke wrote:

Hello

Below is the backtrace. I have seen the behaviour without eval and Postgres
and I will try to take a trace tomorrow. In the debug log actually there is
no error. Since I have only one worker the PID just changes to the new
worker without any info. Since I am using nginx as proxy only I am
suspecting that the error has to do with the proxy functionality.

Your config uses eval{} block in “location /”, and postgres module
is used inside of the eval{}. That is, two 3rd party modules are
used for each request, and bugs in these modules can easily cause
problems.

[…]

#10 0x0000000000440cfb in ngx_http_upstream_handler (ev=0x7fc3cce9e438) at
#11 0x0000000000423257 in ngx_epoll_process_events (cycle=0x19bdde0,

[…]

Trace suggests most likely there is a problem with r->count
reference counting somewhere. As a next step, I would recommend
you to try to reproduce the problem without 3rd party modules.


Maxim D.
http://nginx.org/

Hello!

On Wed, Mar 05, 2014 at 09:56:05AM -0500, greekduke wrote:

Hello,

I suppose you are correct. I have tried to recreate the problem without the
two modules and I haven’t succeeded yet. Anyway I need the modules so I can
live with some segmentation faults. From the part of debug log below I think
that the worker (5201) before dying closes properly the connection. In all
the cases I have a similar behaviour. Can you comment on that?

As already suggested, the problem is likely wrong request
reference counting (likely in one of 3rd party modules you use) -
nginx frees a request, and then dies trying to do something with
the request.


Maxim D.
http://nginx.org/

Hello!

On Wed, Mar 5, 2014 at 6:56 AM, greekduke wrote:

I suppose you are correct. I have tried to recreate the problem without the
two modules and I haven’t succeeded yet.

The ngx_eval module is known to have issues. Can you reproduce the
crash by replacing ngx_eval with ngx_lua?

If you still can, please post the details (bt full ouptuts in gdb, for
example) to the openresty-en mailing list instead:
https://groups.google.com/group/openresty-en Both ngx_lua and
ngx_postgres are supported modules in the OpenResty bundle so you’re
welcome to ask there.

Thanks!
-agentzh

Hello,

As agentzh mentioned eval was causing the problem. I replaced eval with
lua
and after changing the configuration accordingly I haven’t seen any
segfaults again.

Thanks everybody for the help

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,247886,248324#msg-248324

Hello,

I suppose you are correct. I have tried to recreate the problem without
the
two modules and I haven’t succeeded yet. Anyway I need the modules so I
can
live with some segmentation faults. From the part of debug log below I
think
that the worker (5201) before dying closes properly the connection. In
all
the cases I have a similar behaviour. Can you comment on that?

2014/03/05 15:22:22 [debug] 5201#0: *13655 cleanup http upstream
request:
“/economy”
2014/03/05 15:22:22 [debug] 5201#0: *13655 finalize http upstream
request:
-4
2014/03/05 15:22:22 [debug] 5201#0: *13655 finalize http proxy request
2014/03/05 15:22:22 [debug] 5201#0: *13655 free rr peer 1 0
2014/03/05 15:22:22 [debug] 5201#0: *13655 close http upstream
connection:
16
2014/03/05 15:22:22 [debug] 5201#0: *13655 free: 0000000000E834D0,
unused:
48
2014/03/05 15:22:22 [debug] 5201#0: *13655 event timer del: 16:
1394025802596
2014/03/05 15:22:22 [debug] 5201#0: *13655 reusable connection: 0
2014/03/05 15:22:22 [debug] 5201#0: *13655 http finalize request: -4,
“/economy?” a:1, c:1
2014/03/05 15:22:22 [debug] 5201#0: *13655 http request count:1 blk:0
2014/03/05 15:22:22 [debug] 5201#0: *13655 http close request
2014/03/05 15:22:22 [debug] 5201#0: *13655 http log handler
2014/03/05 15:22:22 [debug] 5201#0: *13655 free: 0000000000ED1B70
2014/03/05 15:22:22 [debug] 5201#0: *13655 free: 0000000000E7B2F0,
unused:
1
2014/03/05 15:22:22 [debug] 5201#0: *13655 free: 0000000000E7C300,
unused:
0
2014/03/05 15:22:22 [debug] 5201#0: *13655 free: 0000000000ED0B60,
unused:
72
2014/03/05 15:22:22 [debug] 5201#0: *13655 free: 0000000000ED2B80,
unused:
3614
2014/03/05 15:22:22 [debug] 5201#0: *13655 close http connection: 3
2014/03/05 15:22:22 [debug] 5201#0: *13655 reusable connection: 0
2014/03/05 15:22:22 [debug] 5201#0: *13655 free: 0000000000EC0B30
2014/03/05 15:22:22 [debug] 5201#0: *13655 free: 0000000000E768F0,
unused:
0
2014/03/05 15:22:22 [debug] 5201#0: *13655 free: 0000000000E76A50,
unused:
144
2014/03/05 15:22:22 [debug] 5201#0: *13655 http log handler
2014/03/05 15:22:26 [debug] 5210#0: *13748 http cl:-1 max:314572800
2014/03/05 15:22:26 [debug] 5210#0: *13748 rewrite phase: 2
2014/03/05 15:22:26 [debug] 5210#0: *13748 http subrequest
“/eval_15287696/?_rdr”
2014/03/05 15:22:26 [debug] 5210#0: *13748 http posted request:
“/eval_15287696/?_rdr”

Kostas

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,247886,248139#msg-248139