- 论坛徽章:
- 1
|
本帖最后由 jd808 于 2015-01-08 14:36 编辑
- ============关闭了一个句柄==============
- freesocket OK
- Program received signal SIGSEGV, Segmentation fault.
- malloc_consolidate (av=av@entry=0x7ffff6af5760 <main_arena>) at malloc.c:4113
- 4113 size = p->size & ~(PREV_INUSE|NON_MAIN_ARENA);
- (gdb) bt
- #0 malloc_consolidate (av=av@entry=0x7ffff6af5760 <main_arena>) at malloc.c:4113
- #1 0x00007ffff67b9059 in _int_malloc (av=0x7ffff6af5760 <main_arena>, bytes=1024) at malloc.c:3400
- #2 0x00007ffff67bb11c in __GI___libc_malloc (bytes=1024) at malloc.c:2869
- #3 0x00007ffff798c578 in evbuffer_chain_new (size=71, size@entry=23) at buffer.c:168
- #4 0x00007ffff798f9c0 in _evbuffer_expand_fast (buf=buf@entry=0x956410, datlen=datlen@entry=23,
- n=n@entry=4) at buffer.c:1843
- #5 0x00007ffff799011a in evbuffer_read (buf=buf@entry=0x956410, fd=fd@entry=1133, howmuch=23,
- howmuch@entry=16384) at buffer.c:2087
- #6 0x00007ffff79932d5 in bufferevent_readcb (fd=1133, event=<optimized out>, arg=0x956210)
- at bufferevent_sock.c:165
- #7 0x00007ffff7988a14 in event_process_active_single_queue (activeq=0x6309a0, base=0x67fe60)
- at event.c:1350
- #8 event_process_active (base=<optimized out>) at event.c:1420
- #9 event_base_loop (base=0x67fe60, flags=0) at event.c:1621
- #10 0x000000000040e708 in MultiServer::StartRun (this=0x6347e0) at src/MultiServer.cpp:225
- #11 0x000000000041a950 in TControl::Run (this=0x7fffffffe4af) at src/TControl.cpp:26
- #12 0x0000000000407834 in main (argc=1, argv=0x7fffffffe5a8) at src/node_gateway.cpp:24
复制代码 最近在搞libevent库,同时开启2个压测工具,一个已经正常登陆1000个用户,并开始发测试数据,另一个工具开始建立1000个用户,这个时候会出现用户断开情况(应该是压测工具出问题了),导致服务端,在断开其中一个socket的同时继续建立一个新的socket,导致上面的错误,(后端接收socket是单线程,处理接收指令是多线程),但我已经开启了libevent锁.不知道啥原因,有知道的大侠么? |
|