您的位置:首页 > 其它

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

2011-05-13 11:55 141 查看
昨天系统出现了问题,现象是日志从进入守护进程模式后就再也不出了,检查了半天也没查出问题。

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

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

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



改那个新模块的close操作为直接把句柄设置为-1,问题解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: