免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 14274 | 回复: 30

[C++] 关于调试“后台服务子进程莫名其妙退出”,无Core,偶然性发生 [复制链接]

论坛徽章:
0
发表于 2010-01-04 00:31 |显示全部楼层
5可用积分
【环境】:AIX系统、C++程序
【现象】:启动了10个相同的后台服务子进程处理各种任务,偶尔某天一个子进程在处理某一类任务时莫名退出(但同时其他子进程处理这个任务正常),没有出现Core文件,缓存日志没有输出到磁盘,说明程序强制终止了;
这个现象不好重现,等专门进行该任务处理测试时却又不发生,却隔七八天半个月可能出现一两次;
也有规律,主要出现在处理某类特定服务的时候(所以不太可能是系统资源影响??);
【措施】:想到一些可能原因和采取了一些措施:
1)因为AIX内存使用紧张而自动kill进程,经过监控基本可以排除
2)代码错误,代码量比较大不好找,但是不明白是为什么其他子进程处理没有问题???
3)以前输出日志到文件有缓存区,所以不好定位何处终止程序了,现在采用实时输出日志到磁盘文件
4)怀疑是某个信号终止了程序(如一些信号的缺省动作是终止进程且不产生Core,如SIGALRM等),通过自定义用户处理程序捕捉打印所有信号来跟踪。。。

但是目前还没能重现该现象,不知道有没有效果;
【问题】:请指教大家,这类问题还存在什么可能原因?又该如何调试跟进?谢谢!

[ 本帖最后由 kyle218 于 2010-1-4 00:55 编辑 ]

论坛徽章:
0
发表于 2010-01-04 21:51 |显示全部楼层
有什么建议和想法吗?thanks

论坛徽章:
0
发表于 2010-01-04 21:54 |显示全部楼层
输出调试语句?

论坛徽章:
0
发表于 2010-01-04 22:32 |显示全部楼层
同样的情况。  linux . 重构好以后, 运行1个月左右就会出现这样的情况。
也无core

论坛徽章:
0
发表于 2010-01-04 23:15 |显示全部楼层
原帖由 ziggler 于 2010-1-4 21:54 发表
输出调试语句?

输出了,将文件buffer缓冲区设置为1个字节,相当实时了;
现在还没有重现,所以。。。。想问问各位还有其他什么想法
还是谢谢斑竹大人^_^

论坛徽章:
0
发表于 2010-01-04 23:16 |显示全部楼层
原帖由 benjiam 于 2010-1-4 22:32 发表
同样的情况。  linux . 重构好以后, 运行1个月左右就会出现这样的情况。
也无core

好惨啊,找不到问题,你有什么思路没?这个不是办法,不能交差啊~~呵呵

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
发表于 2010-01-04 23:56 |显示全部楼层
是否有内存泄漏...

aix中 进程的堆是有限制的,256M,当然你可以扩张

论坛徽章:
0
发表于 2010-01-05 09:34 |显示全部楼层
这问题我遇到过,最后知道是 被操作系统干掉了~因为是 out of memery~~~所以建议你看看是不是内存泄露了~用valgrind检查一下~另外你看下系统日志,应该有提示的

[ 本帖最后由 zhyclt 于 2010-1-5 09:37 编辑 ]

论坛徽章:
0
发表于 2010-01-05 10:24 |显示全部楼层
我也碰到过out of memery, 不一定是内存泄露, 可能内存碎片太多
1) out of memery, 你能在/var/log/syslog 中找到对应的log

2) 如果用了STL, 造成out of memery, 不一定是内存泄露,
   可以参考一下http://blog.163.com/dengminwen@1 ... 226720097189486788/

论坛徽章:
0
发表于 2010-01-05 10:40 |显示全部楼层
原帖由 chenzhanyiczy 于 2010-1-4 23:56 发表
是否有内存泄漏...

aix中 进程的堆是有限制的,256M,当然你可以扩张

原帖由 zhyclt 于 2010-1-5 09:34 发表
这问题我遇到过,最后知道是 被操作系统干掉了~因为是 out of memery~~~所以建议你看看是不是内存泄露了~用valgrind检查一下~另外你看下系统日志,应该有提示的


回上面两位,程序里面没有用到任何new和malloc的内存申请函数,应该不会有内存泄露完毕的情况吧??
这几天一直在高强度测试,都不能重现~~比较郁闷

系统限制
bash-9.0$ ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) unlimited
pipe size            (512 bytes, -p) 64
stack size              (kbytes, -s) hard
cpu time               (seconds, -t) unlimited
max user processes              (-u) 2048
virtual memory          (kbytes, -v) unlimited
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP