一个很深的bug - 句柄被异常关闭

13 篇文章 0 订阅
3 篇文章 0 订阅

昨天系统出现了问题,现象是日志从进入守护进程模式后就再也不出了,检查了半天也没查出问题。

下午的代码走查会议,无意中找到了问题的原因。

原来一个模块新加的初始化函数被放到了日志模块的初始化函数之前,那个初始化函数对一个未初始化的句柄数组逐一执行了close操作。

数组中其中一个成员为0-3之间的数值,导致了日志模块初始化的时候,open日志文件时候得到的句柄为0-3之间的数字,然后进入守护进程的函数里在fork之后执行了对0-3的close,这导致了日志文件的句柄被关闭,从而使得后面就再也没有日志了。

 

改那个新模块的close操作为直接把句柄设置为-1,问题解决。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值