-
Notifications
You must be signed in to change notification settings - Fork 15.9k
Description
I use Lua to write a C++.So shared library, which contains protobuf.
My WebService is nginx, the request is dealt with the Lua, and at the end of request,write a Pb log. But when nginx worker exit, it will be core:
#0 0x000000302af2e2ed in raise () from /lib64/tls/libc.so.6
#1 0x000000302af2fa3e in abort () from /lib64/tls/libc.so.6
#2 0x000000302af62db1 in __libc_message () from /lib64/tls/libc.so.6
#3 0x000000302af6888e in int_free () from /lib64/tls/libc.so.6
#4 0x000000302af68bd6 in free () from /lib64/tls/libc.so.6
#5 0x000000302d3ae19e in operator delete(void*) () from /usr/lib64/libstdc++.so.6
#6 0x0000000000620298 in gnu_cxx::hashtable<std::pair<std::pair<google::protobuf::EnumDescriptor const*, int> const, google::protobuf::EnumValueDescriptor const>, std::pair<google::protobuf::EnumDescriptor const, int>, google::protobuf::(anonymous namespace)::PointerIntegerPairHash<std::pair<google::protobuf::EnumDescriptor const*, int> >, std::Select1st<std::pair<std::pair<google::protobuf::EnumDescriptor const*, int> const, google::protobuf::EnumValueDescriptor const> >, std::equal_to<std::pair<google::protobuf::EnumDescriptor const, int> >, std::allocator<google::protobuf::EnumValueDescriptor const*> >::clear (
this=0xa25760 <google::protobuf::FileDescriptorTables::kEmpty+160>)
at /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/ext/new_allocator.h:86
#7 0x00000000006094e0 in ~hashtable (this=, __in_chrg=)
at /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/ext/hashtable.h:327
#8 0x00000000006094e0 in ~hash_map (this=, __in_chrg=)
#9 0x00000000006094e0 in ~hash_map (this=0x242e, __in_chrg=)
#10 0x00000000006094e0 in google::protobuf::FileDescriptorTables::~FileDescriptorTables (this=0xa256c0 google::protobuf::FileDescriptorTables::kEmpty,
__in_chrg=<optimized out>)
#11 0x000000302af30c65 in exit () from /lib64/tls/libc.so.6
#12 0x00000000004e4420 in ngx_worker_process_exit (cycle=0xdcb1a0) at src/os/unix/ngx_process_cycle.c:1103
#13 0x00000000004e3cc6 in ngx_worker_process_cycle (cycle=0xdcb1a0, data=) at src/os/unix/ngx_process_cycle.c:844
#14 0x00000000004e1bab in ngx_spawn_process (cycle=0xdcb1a0, proc=0x4e3bcd <ngx_worker_process_cycle>, data=0x0, name=0x7da525 "worker process", respawn=-3)
at src/os/unix/ngx_process.c:198
#15 0x00000000004e33ce in ngx_start_worker_processes (cycle=0xdcb1a0, n=1, type=-3) at src/os/unix/ngx_process_cycle.c:394
#16 0x00000000004e2dd8 in ngx_master_process_cycle (cycle=0xdcb1a0) at src/os/unix/ngx_process_cycle.c:166
#17 0x00000000004c70fe in main (argc=5, argv=) at src/core/nginx.c:412
I guess this is related to protobuf FileDescriptorTables?