在使用nginx lua module的时候,突然爆出来一个core dump。bt的信息如下:
#0 0x0000000000006d1e in ?? ()
#1 0x00007f54c1bc4b92 in lj_cf_package_unloadlib (L=<value optimized out>) at lib_package.c:258
#2 0x00007f54c1b78e2b in lj_BC_FUNCC () from /opt/nginx/libs/libluajit-5.1.so.2
#3 0x00007f54c1b7bb09 in gc_call_finalizer (g=<value optimized out>, L=0x41b5c378, mo=<value optimized out>, o=<value optimized out>) at lj_gc.c:473
#4 0x00007f54c1b7bc06 in gc_finalize (L=0x41b5c378) at lj_gc.c:518
#5 0x00007f54c1b7c488 in lj_gc_finalize_udata (L=0x41b5c378) at lj_gc.c:525
#6 0x00007f54c1b81e81 in cpfinalize (L=0x41b5c378, dummy=<value optimized out>, ud=<value optimized out>) at lj_state.c:229
#7 0x00007f54c1b7916c in lj_vm_cpcall () from /opt/nginx/libs/libluajit-5.1.so.2
#8 0x00007f54c1b81e3d in lua_close (L=0x41b5c378) at lj_state.c:251
#9 0x0000000000484a11 in ngx_http_lua_cleanup_vm (data="" optimized out>) at ../lua-nginx-module/src/ngx_http_lua_module.c:667
#10 0x00000000004118e9 in ngx_destroy_pool (pool=0x22d5f40) at src/core/ngx_palloc.c:55
#11 0x000000000042db02 in ngx_worker_process_exit (cycle=0x22d5f90) at src/os/unix/ngx_process_cycle.c:1067
#12 0x000000000042dc65 in ngx_worker_process_cycle (cycle=0x22d5f90, data="" optimized out>) at src/os/unix/ngx_process_cycle.c:812
#13 0x000000000042c3bc in ngx_spawn_process (cycle=0x22d5f90, proc=0x42db3a <ngx_worker_process_cycle>, data="" name=0x4b757b "worker process", respawn=1) at src/os/unix/ngx_process.c:198
#14 0x000000000042e649 in ngx_reap_children (cycle=0x22d5f90) at src/os/unix/ngx_process_cycle.c:619
#15 ngx_master_process_cycle (cycle=0x22d5f90) at src/os/unix/ngx_process_cycle.c:180
#16 0x0000000000410d9a in main (argc=<value optimized out>, argv=<value optimized out>) at src/core/nginx.c:412
nginx的版本为:nginx-1.3.11-RELEASE commit: e0235968fc75df45482929b0312dfd7a0b199520
lua module的版本为:commit: 1a52a5819def1f056a3c137a604f7a3398c812ef
kernel: 2.6.32-220.el6.x86_64
version: Red Hat Enterprise Linux Server release 6.2 (Santiago)
另外请问下,我写了个c module,通过valgrind测试报如下错误是不是正常的
==11073== Invalid read of size 4
==11073== at 0x4064D5: ??? (in /usr/local/bin/luajit-2.0.0)
==11073== by 0x40AB3A: lua_pushlstring (in /usr/local/bin/luajit-2.0.0)
==11073== by 0x5D07D36: nessdb_get (nessdb.c:57)
==11073== by 0x41BF6A: ??? (in /usr/local/bin/luajit-2.0.0)
==11073== by 0x40BCFF: lua_pcall (in /usr/local/bin/luajit-2.0.0)
==11073== by 0x404665: ??? (in /usr/local/bin/luajit-2.0.0)
==11073== by 0x40519C: ??? (in /usr/local/bin/luajit-2.0.0)
==11073== by 0x41BF6A: ??? (in /usr/local/bin/luajit-2.0.0)
==11073== by 0x40BD91: lua_cpcall (in /usr/local/bin/luajit-2.0.0)
==11073== by 0x403F83: main (in /usr/local/bin/luajit-2.0.0)
==11073== Address 0x5970094 is 4 bytes inside a block of size 7 alloc'd
==11073== at 0x4C29DB4: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==11073== by 0x5F0D55A: xcalloc (xmalloc.c:35)
==11073== by 0x5F10F8C: index_read_data (index.c:168)
==11073== by 0x5F11AA6: index_get (index.c:374)
==11073== by 0x5F133FC: db_get (db.c:46)
==11073== by 0x5D07CEF: nessdb_get (nessdb.c:54)
==11073== by 0x41BF6A: ??? (in /usr/local/bin/luajit-2.0.0)
==11073== by 0x40BCFF: lua_pcall (in /usr/local/bin/luajit-2.0.0)
==11073== by 0x404665: ??? (in /usr/local/bin/luajit-2.0.0)
==11073== by 0x40519C: ??? (in /usr/local/bin/luajit-2.0.0)
==11073== by 0x41BF6A: ??? (in /usr/local/bin/luajit-2.0.0)
==11073== by 0x40BD91: lua_cpcall (in /usr/local/bin/luajit-2.0.0)
==11073==
best wishes, ASAP...