请教一个问题,使用openresty过程中出现core dump

173 views
Skip to first unread message

mian wang

unread,
Oct 9, 2019, 4:51:08 AM10/9/19
to openresty
Hi,all:

近期在使用openresty(版本号:1.15.8.2)来处理请求时,出现了core dump,调用栈如下:

(gdb) bt
#0  0x00007f67906b09d0 in tmalloc_large (msp=0x7f6790104010, nsize=<value optimized out>) at lj_alloc.c:1197
#1  lj_alloc_malloc (msp=0x7f6790104010, nsize=<value optimized out>) at lj_alloc.c:1324
#2  0x00007f67906b1d41 in lj_alloc_realloc (msp=0x7f6790104010, ptr=0x7f674e14ef00, nsize=2056) at lj_alloc.c:1467
#3  0x00007f6790653a0f in lj_mem_realloc (L=0x7f6749cb2bb8, p=<value optimized out>, osz=1032, nsz=2056) at lj_gc.c:818
#4  0x00007f6790658b0e in lj_tab_resize (L=0x7f6749cb2bb8, t=0x7f674e14eca8, asize=257, hbits=<value optimized out>)
    at lj_tab.c:268
#5  0x00007f6790658d9b in rehashtab (L=0x7f6749cb2bb8, t=0x7f674e14eca8, ek=0x7ffddc2ed580) at lj_tab.c:387
#6  0x00007f6790658f9e in lj_tab_newkey (L=0x7f6749cb2bb8, t=0x7f674e14eca8, key=0x7ffddc2ed580) at lj_tab.c:471
#7  0x00007f6790659236 in lj_tab_setinth (L=<value optimized out>, t=<value optimized out>, key=<value optimized out>)
    at lj_tab.c:547
#8  0x00007f67906656be in lua_rawseti (L=0x7f6749cb2bb8, idx=<value optimized out>, n=129) at lj_api.c:1002
#9  0x00007f674febff04 in json_parse_array_context (l=0x7f6749cb2bb8, json=0x7ffddc2ed670, token=<value optimized out>)
    at lua_cjson.c:1305
#10 json_process_value (l=0x7f6749cb2bb8, json=0x7ffddc2ed670, token=<value optimized out>) at lua_cjson.c:1339
#11 0x00007f674fec003a in json_decode (l=0x7f6749cb2bb8) at lua_cjson.c:1378
#12 0x00007f67906514d2 in lj_BC_FUNCC () from /home/work/302rcjorcol/luajit/lib/libluajit-5.1.so.2
#13 0x00007f67906649f7 in lua_pcall (L=0x7f6749cb2bb8, nargs=1, nresults=1, errfunc=<value optimized out>) at lj_api.c:1129
#14 0x00007f674fec06dd in json_protect_conversion (l=0x7f6749cb2bb8) at lua_cjson.c:1430
#15 0x00007f67906514d2 in lj_BC_FUNCC () from /home/work/302rcjorcol/luajit/lib/libluajit-5.1.so.2
#16 0x0000000000501049 in ngx_http_lua_run_thread (L=0x7f6790104378, r=0x1e2e6f0, ctx=0x1ed7080, nrets=0)
    at ../ngx_lua-0.10.15/src/ngx_http_lua_util.c:1091
#17 0x0000000000503a3a in ngx_http_lua_content_by_chunk (L=0x7f6790104378, r=0x1e2e6f0)
    at ../ngx_lua-0.10.15/src/ngx_http_lua_contentby.c:122
#18 0x0000000000503e06 in ngx_http_lua_content_handler_file (r=0x1e2e6f0) at ../ngx_lua-0.10.15/src/ngx_http_lua_contentby.c:286
#19 0x0000000000503f42 in ngx_http_lua_content_handler (r=0x1e2e6f0) at ../ngx_lua-0.10.15/src/ngx_http_lua_contentby.c:224
#20 0x000000000045f224 in ngx_http_core_content_phase (r=0x1e2e6f0, ph=0x1d61560) at src/http/ngx_http_core_module.c:1180
#21 0x000000000045911d in ngx_http_core_run_phases (r=0x1e2e6f0) at src/http/ngx_http_core_module.c:869
#22 0x00000000004656a8 in ngx_http_process_request_headers (rev=<value optimized out>) at src/http/ngx_http_request.c:1381
#23 0x0000000000465cc4 in ngx_http_process_request_line (rev=0x7f674efefa30) at src/http/ngx_http_request.c:1051
#24 0x000000000044dc01 in ngx_epoll_process_events (cycle=0x1cf49e0, timer=<value optimized out>, flags=<value optimized out>)
    at src/event/modules/ngx_epoll_module.c:902
#25 0x0000000000442ada in ngx_process_events_and_timers (cycle=0x1cf49e0) at src/event/ngx_event.c:252
#26 0x000000000044b7e5 in ngx_worker_process_cycle (cycle=0x1cf49e0, data=<value optimized out>)
    at src/os/unix/ngx_process_cycle.c:816
---Type <return> to continue, or q <return> to quit---
#27 0x0000000000449920 in ngx_spawn_process (cycle=0x1cf49e0, proc=0x44b7a0 <ngx_worker_process_cycle>, data=0x2, 
    name=0x56bf94 "worker process", respawn=-3) at src/os/unix/ngx_process.c:199
#28 0x000000000044aa2c in ngx_start_worker_processes (cycle=0x1cf49e0, n=6, type=-3) at src/os/unix/ngx_process_cycle.c:397
#29 0x000000000044c0f3 in ngx_master_process_cycle (cycle=0x1cf49e0) at src/os/unix/ngx_process_cycle.c:136
#30 0x00000000004221fd in main (argc=<value optimized out>, argv=<value optimized out>) at src/core/nginx.c:382

 lj_alloc.c 中第 1197行 的代码是:

1.png


该宏定义是:

2.png


接触openresty不久,不知道该如何查起,还请各位指导一下可能的方向。

along

unread,
Oct 9, 2019, 4:56:15 AM10/9/19
to openresty
看起来像是content_by_lua里面哪里写的有问题导致的,可以仔细的检查一下代码再看看

mian wang

unread,
Oct 9, 2019, 6:40:25 AM10/9/19
to openresty
是的,对请求的处理主要在content_by_lua里调用了lua脚本进行,但是检查代码,目前来看,没有什么问题。另外想请教的是,根据调用栈的信息来看,主要在tmalloc_large出现了问题,想问下,tmalloc_large出现问题,可能的原因有哪些?是内存不足还是其他?

在 2019年10月9日星期三 UTC+8下午4:56:15,along写道:
Reply all
Reply to author
Forward
0 new messages