的pstack
pstack 27339
#0 0x00000037c600cd2b in pthread_once () from /lib64/libpthread.so.0
#1 0x00000037c5cfe954 in backtrace () from /lib64/libc.so.6
#2 0x00000037c5c7054b in __libc_message () from /lib64/libc.so.6
#3 0x00000037c5c75e66 in malloc_printerr () from /lib64/libc.so.6
#4 0x00000037c5c79904 in _int_malloc () from /lib64/libc.so.6
#5 0x00000037c5c7a6b1 in malloc () from /lib64/libc.so.6
#6 0x00000037c580cc5d in _dl_map_object_deps () from /lib64/ld-linux-x86-64.so.2
#7 0x00000037c5812b62 in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
#8 0x00000037c580e266 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#9 0x00000037c58125aa in _dl_open () from /lib64/ld-linux-x86-64.so.2
#10 0x00000037c5d26b20 in do_dlopen () from /lib64/libc.so.6
#11 0x00000037c580e266 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#12 0x00000037c5d26c77 in __libc_dlopen_mode () from /lib64/libc.so.6
#13 0x00000037c5cfe825 in init () from /lib64/libc.so.6
#14 0x00000037c600cd33 in pthread_once () from /lib64/libpthread.so.0
#15 0x00000037c5cfe954 in backtrace () from /lib64/libc.so.6
#16 0x00000037c5c7054b in __libc_message () from /lib64/libc.so.6
#17 0x00000037c5c75e66 in malloc_printerr () from /lib64/libc.so.6
#18 0x00000037c5c79904 in _int_malloc () from /lib64/libc.so.6
#19 0x00000037c5c7a6b1 in malloc () from /lib64/libc.so.6
#20 0x0000000000457e1a in ngx_alloc ()
#21 0x0000000000443d92 in ngx_palloc_large ()
#22 0x0000000000443e95 in ngx_palloc ()
#23 0x00000000004456ec in ngx_create_temp_buf ()
#24 0x000000000049f79b in ajp_msg_create_buffer ()
#25 0x00000000004a22de in ngx_http_ajp_create_request ()
#26 0x0000000000479593 in ngx_http_upstream_init_request ()
#27 0x0000000000479955 in ngx_http_upstream_init ()
#28 0x00000000004712f8 in ngx_http_read_client_request_body ()
#29 0x00000000004a1a6f in ngx_http_ajp_handler ()
#30 0x000000000046725d in ngx_http_core_content_phase ()
#31 0x0000000000462a23 in ngx_http_core_run_phases ()
#32 0x00000000004a6ac4 in npc_sendRequest ()
#33 0x000000000045cc9f in ngx_epoll_process_events ()
#34 0x0000000000455c83 in ngx_process_events_and_timers ()
#35 0x000000000045b684 in ngx_worker_process_cycle ()
#36 0x0000000000459e55 in ngx_spawn_process ()
#37 0x000000000045bfe9 in ngx_master_process_cycle ()
#38 0x000000000044318d in main ()
错误日志
*** glibc detected *** nginx: worker process: malloc(): memory corruption: 0x0000000000ee8c00 ***
*** glibc detected *** nginx: worker process: malloc(): memory corruption: 0x0000000000ee8c00 ***
var / proc / pid / stack
[<ffffffff810a9a49>] futex_wait_queue_me+0xb9/0xf0
[<ffffffff810aab58>] futex_wait+0x1f8/0x380
[<ffffffff810ac2c1>] do_futex+0x121/0xb60
[<ffffffff810acd7b>] sys_futex+0x7b/0x170
[<ffffffff8100b072>] system_call_fastpath+0x16/0x1b
[<ffffffffffffffff>] 0xffffffffffffffff
当我收到错误时,nginx进程被挂起。 由于malloc错误进程,所有进程都会挂起。
在错误日志中,没有回溯。 所以,我猜malloc和backtrace(或打印机)之间存在死锁。
我使用'accept_mutex off'选项,它只是减少了错误。 (这不是一个完美的解决方案)
我正在使用nginx-0.8.54。