今天几个bug的排查过程
2012-05-19 22:20
232 查看
1. event_base_loop 未进入消息循环,自动退出
解决方法:gdb跟踪到退出的代码,然后查看代码,分析为什么退出,发现是因为没有事件,所以退出
2. 如果client做了connect,但是服务器没有accept,则一直触发事件
解决方法:怀疑是没有边缘触发,strace发现用的确实是epoll,找到epoll设置边缘触发的标志位,在libevent代码中搜索此标志位,找到libevent的标志位,设置即可
3. 调用redis的anetRead,总是失败
解决方法:跟踪代码,发现是调用read时返回了-1,man read,发现非阻塞io读不到数据会返回-1,查看redis代码中的anetRead,发现他没用,而是重新写了一个,并且判断errno=-11时,认为不是错误
解决方法:gdb跟踪到退出的代码,然后查看代码,分析为什么退出,发现是因为没有事件,所以退出
2. 如果client做了connect,但是服务器没有accept,则一直触发事件
解决方法:怀疑是没有边缘触发,strace发现用的确实是epoll,找到epoll设置边缘触发的标志位,在libevent代码中搜索此标志位,找到libevent的标志位,设置即可
3. 调用redis的anetRead,总是失败
解决方法:跟踪代码,发现是调用read时返回了-1,man read,发现非阻塞io读不到数据会返回-1,查看redis代码中的anetRead,发现他没用,而是重新写了一个,并且判断errno=-11时,认为不是错误
相关文章推荐
- 记一次 BUG 的排查过程
- IE下ul li 互相嵌套时候的bug,排查,解决过程及心得
- 基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
- 很好的一个分析bug的文章,供以后疑难bug参考,转一下:一次segfault错误的排查过程
- 基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
- 记一个bug的排查过程---复盘
- [知其然不知其所以然-2]设备D3hot状态切换到D0状态的一个bug排查过程
- linux内核bug问题排查过程详细报告
- 今天运行代码过程中解决的几个问题
- 今天一天开发的内容!修复了几个Bug,开发了一些新的功能!
- linux内核bug问题排查过程详细报告
- 今天正式决定,每天简短的几个字记录自己准备系统分析员考试的过程。
- linux内核bug问题排查过程详细报告
- IE下ul li 互相嵌套时候的bug,排查,解决过程及心得
- [CSS]图片无法自适应高宽bug排查过程
- 今天的几个bug
- linux内核bug问题排查过程详细报告
- 今天非常高兴,解决了一个关于java类转json时有关联对象而且困扰我很久的BUG
- 几个较好的数据库分页过程
- 关于中几个未公布的访问的扩展存储过程