在 centos 2 上运行的程序运行一段时间后就卡死了,感觉像是死锁问题,大家有木有好的排查死锁的工具,借鉴一下

2015-12-22 20:16:39 +08:00
 xiaoxiaoyang
最近遇到一个问题是,在 centos 2 上运行的程序运行一段时间后就卡死了,用 gdb 调试查看线程的的时候线程都停在 pthead_cond_wait 这个地方,不知道哪里出问题,猜想是程序出了死锁,大家有木有好的排查死锁的工具,借鉴一下
3862 次点击
所在节点    Linux
17 条回复
xiaoxiaoyang
2015-12-22 20:24:11 +08:00
Thread 0x2ba80b594230 (LWP 32218) 0x000000363f80aee9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
gdb 打印的上面一句话,是在等待什么呢?
oott123
2015-12-22 22:37:59 +08:00
CentOS 2 …
这…似乎有点古老…
ncisoft
2015-12-22 23:41:28 +08:00
加调试信息,查出行号,查源代码
9hills
2015-12-22 23:57:37 +08:00
CentOS2 !
The first CentOS release in May 2004, numbered as CentOS version 2, was forked from RHEL version 2.1AS.


这是有多老
chinvo
2015-12-23 00:53:00 +08:00
你可以尝试升级你的系统
pynix
2015-12-23 01:36:36 +08:00
古董机系统
comicfans44
2015-12-23 07:54:56 +08:00
crazycen
2015-12-23 08:41:08 +08:00
当时我还在上初中!
weiceshi
2015-12-23 09:14:11 +08:00
@9hills
The first Windows XP release in Aug 24, 2004
weiceshi
2015-12-23 09:14:49 +08:00
@9hills 上面笔误
The first Windows XP release in Aug 24, 2001
honeycomb
2015-12-23 09:25:09 +08:00
@weiceshi 但是人们一般在用 SP2(Aug 24, 2004)/SP3(2008)
xiaoxiaoyang
2015-12-23 09:53:53 +08:00
@comicfans44 在用 valgrind 但另一个 liblockdep ????大多数的线程都在
0x000000320a00b63c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
这是在等待信号吗?
xiaoxiaoyang
2015-12-23 09:58:02 +08:00
@9hills 不好意思,抱歉我写错了,现在系统是 centos6.5-64 ,依然很感谢
comicfans44
2015-12-23 10:38:02 +08:00
@xiaoxiaoyang 等待被其他线程的 pthread_cond_broadcast/pthread_cond_signal 唤醒。从你描述的情况来看,应该是条件变量等待导致的死锁,你需要的是回溯这些 pthread_cond_wait 的调用栈,找到调用点前的判定的条件都是什么。应该是这些判定条件彼此有循环依赖关系
xiaoxiaoyang
2015-12-23 11:06:49 +08:00
@comicfans44 非常感谢,我看下代码
CheungKe
2015-12-23 11:09:34 +08:00
@xiaoxiaoyang 不是 CentOS 6.4 x86_64?
xiaoxiaoyang
2015-12-23 13:02:09 +08:00
@CheungKe 虚拟机显示是 CentOS 6.5 x86_64

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/245455

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX