Opened 11 years ago
Closed 11 years ago
#636 closed defect (invalid)
CPU 100% nginx/1.7.6
| Reported by: | Alex Storn | Owned by: | |
|---|---|---|---|
| Priority: | minor | Milestone: | |
| Component: | nginx-core | Version: | 1.7.x |
| Keywords: | cpu, overhead | Cc: | |
| uname -a: | FreeBSD example.com 10.1-RC1 FreeBSD 10.1-RC1 #0 r272463: Fri Oct 3 01:47:10 UTC 2014 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64 | ||
| nginx -V: |
nginx version: nginx/1.7.6
TLS SNI support enabled configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I/root/make/boringssl/.openssl/include -I /usr/local/include' --with-ld-opt='-L/root/make/boringssl/.openssl/lib -L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --with-file-aio --with-ipv6 --with-google_perftools_module --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx-access.log --add-module=/usr/ports/www/nginx-devel/work/openresty-headers-more-nginx-module-0c6e05d --with-http_image_filter_module --with-http_stub_status_module --with-pcre --with-http_spdy_module --with-http_ssl_module |
||
Description
- Last version BoringSSL
# ps aux | grep nginx www 20573 100.0 0.2 145548 33760 - RN 7:14PM 39:47.66 nginx: worker process (nginx) www 20576 100.0 0.2 145548 34832 - RN 7:14PM 148:02.64 nginx: worker process (nginx) www 20574 0.5 0.2 145548 31476 - SN 7:14PM 7:10.77 nginx: worker process (nginx) root 20572 0.0 0.1 125068 10152 - Ss 7:14PM 0:00.00 nginx: master process /usr/local/sbin/nginx www 20575 0.0 0.2 145548 33036 - SN 7:14PM 7:13.49 nginx: worker process (nginx) root 45299 0.0 0.0 18820 2328 2 S+ 7:19AM 0:00.00 grep nginx
nginx.conf = http://trac.nginx.org/nginx/ticket/618
gdb$ bt full
#0 0x00000000004f01af in ssl23_accept ()
No symbol table info available.
#1 0x0000000000511eee in SSL_do_handshake ()
No symbol table info available.
#2 0x0000000000447a6c in ngx_ssl_handshake (c=0x48425060) at src/event/ngx_event_openssl.c:1031
n = 0x0
sslerr = 0x48425060
err = 0x0
#3 0x00000000004618a3 in ngx_http_ssl_handshake (rev=0x43818830) at src/http/ngx_http_request.c:717
p = 0x890480 <ngx_event_timer_sentinel> ""
buf = "\264\345\377\377\377\177\000\000\260CD\000\000\000\000\000@]\302H", '\000' <repeats 12 times>, "P\345\377\377\000\000\000\000\300\244FC\000\000\000\000\300\001@H\000\000\000\000`PBH\000\000\000\000\030\230FC\000\000\000\000\060\210\301H\000\000\000\000\060\210\201C\000\000\000\000p\034\211\000&\000\000\000\340`\200C\000\000\000\000`\271aC"
size = 0x1
n = 0x1
err = 0x23
rc = 0x0
c = 0x48425060
hc = 0x4361b9b8
sscf = 0x434a68c8
#4 0x00000000004361ee in ngx_event_process_posted (cycle=0x43469050, posted=0x891c60 <ngx_posted_events>) at src/event/ngx_event_posted.c:33
q = 0x43818888
ev = 0x43818830
#5 0x0000000000434f1d in ngx_process_events_and_timers (cycle=0x43469050) at src/event/ngx_event.c:265
flags = 0x3
timer = 0x93
delta = 0x2
#6 0x00000000004420b4 in ngx_worker_process_cycle (cycle=0x43469050, data=0x0) at src/os/unix/ngx_process_cycle.c:822
worker = 0x0
i = 0x7fffffffe520
c = 0x7fffffffe630
#7 0x000000000043e1e6 in ngx_spawn_process (cycle=0x43469050, proc=0x441f00 <ngx_worker_process_cycle>, data=0x0, name=0x60cec6 "worker process", respawn=0xfffffffffffffffd) at src/os/unix/ngx_process.c:198
on = 0x1
pid = 0x0
s = 0x0
#8 0x000000000043ff2f in ngx_start_worker_processes (cycle=0x43469050, n=0x4, type=0xfffffffffffffffd) at src/os/unix/ngx_process_cycle.c:368
i = 0x0
ch = {command = 0x1, pid = 0x0, slot = 0x0, fd = 0x0}
#9 0x000000000043f82a in ngx_master_process_cycle (cycle=0x43469050) at src/os/unix/ngx_process_cycle.c:140
title = 0x435f6290 "master process /usr/local/sbin/nginx"
p = 0x435f62b4 ""
size = 0x25
i = 0x1
n = 0x7fffffffe840
sigio = 0x43469068
set = {__bits = {0x0, 0x0, 0x0, 0x0}}
itv = {it_interval = {tv_sec = 0x0, tv_usec = 0x0}, it_value = {tv_sec = 0x0, tv_usec = 0x6}}
live = 0x0
delay = 0x0
ls = 0x0
ccf = 0x4346a158
#10 0x0000000000404c55 in main (argc=0x1, argv=0x7fffffffeae8) at src/core/nginx.c:407
i = 0x36
log = 0x88de10 <ngx_log>
cycle = 0x43469050
init_cycle = {conf_ctx = 0x0, pool = 0x43406800, log = 0x88de10 <ngx_log>, new_log = {log_level = 0x0, file = 0x0, connection = 0x0, handler = 0x0, data = 0x0, writer = 0x0, wdata = 0x0, action = 0x0, next = 0x0}, log_use_stderr = 0x0, files = 0x0, free_connections = 0x0, free_connection_n = 0x0, reusable_connections_queue = {prev = 0x0, next = 0x0}, listening = {elts = 0x0, nelts = 0x0, size = 0x0, nalloc = 0x0, pool = 0x0}, paths = {elts = 0x0, nelts = 0x0, size = 0x0, nalloc = 0x0, pool = 0x0}, open_files = {last = 0x0, part = {elts = 0x0, nelts = 0x0, next = 0x0}, size = 0x0, nalloc = 0x0, pool = 0x0}, shared_memory = {last = 0x0, part = {elts = 0x0, nelts = 0x0, next = 0x0}, size = 0x0, nalloc = 0x0, pool = 0x0}, connection_n = 0x0, files_n = 0x0, connections = 0x0, read_events = 0x0, write_events = 0x0, old_cycle = 0x0, conf_file = {len = 0x1f, data = 0x60a058 "/usr/local/etc/nginx/nginx.conf"}, conf_param = {len = 0x0, data = 0x0}, conf_prefix = {len = 0x15, data = 0x60a058 "/usr/local/etc/nginx/nginx.conf"}, prefix = {len = 0x15, data = 0x60a042 "/usr/local/etc/nginx/"}, lock_file = {len = 0x0, data = 0x0}, hostname = {len = 0x0, data = 0x0}}
ccf = 0x4346a158
Note:
See TracTickets
for help on using tickets.

What makes you think that the problem is in nginx? Backtrace suggests it's in ssl23_accept(), i.e., in BoringSSL code.