- 论坛徽章:
- 1
|
我在进行压力测试时碰到一个奇怪的问题:调用pthread_create()时core dump了。
程序的流程是:主线程起一个SOCKET进行监听,有用户连接时创建一个子线程进行处理。子线程处理完后退出。
现在进行压力测试,400用户并发,隔20秒左右连一次,跑了几个小时后coredump:
#0 0xff3a0888 in memset() from /usr/platform/SUNW, Netra-240 libc_psr.so.1
#1 0xfef455c4 in setup_context()
#2 0xfef38854 in _thrp_create()
#3 0xfef3c07c in pthread_create()
#4 0x0022a370 in rtspConvStartListenThread()
此问题可以重现,请大家指教。
pthread_create语句如下:
pthread_create(&usrThread, &attr, rtspConvStartRecv, (void *)(rtspConvArg));
void *rtspConvStartRecv(void *arg);
从GDB来看是在memset时出问题的,可能是跟创建线程时的stack有关,
不知可不可以找到pthread_create的源码?这样可以看看setup_context()是想做什么。
[ 本帖最后由 crazy_li 于 2006-8-24 11:41 编辑 ] |
|