本帖最后由 bandgear 于 2014-2-28 13:42 编辑
做了一个带自己流控功能的op固件(https://www.right.com.cn/forum/thread-128282-1-1.html),根据用户反馈加了wifidog的功能,后面不停有用户反馈wifidog不稳定的问题,会偶尔有崩溃的情况,原因不明。刚开始没细想,觉得开源软件,质量肯定没得说,咱掺和进去也不一定能发现啥问题。后来群里的朋友念叨多了,不由有点动了心思:不就是bug吗,改不了,咱复现看看总可以吧,反正咱有测试老能手keepwalking{:soso_e113:},于是放keepwalking,复现崩溃问题。经过各种折腾,此处省略几百字,终于能很快把wifidog放倒。既然都到这步了,看代码查bug就是水到渠成的事了。第一轮:发现wifidog里面大量用到不安全api,如strcpy,memcmp,sprintf。。。,换!分配内存没有检测是否成功,加上检测!变量没有初始化,加上!完成后接着测试,不出意料的仍然轻松被放倒。第二轮:屏蔽功能模块,定位问题区域,经过反复排查,基本定位是多线程导致的问题,换成单线程严重,测试基本没问题。第三轮:优化,单线程在压力大的情况用户登录反映会比较慢,优化是必须的,开始捣鼓。。。。。此处省略n多字,优化完后也要看看稳定性,测试结果同样基本没问题。经过3轮,基本上发现并“解决”了wifidog的崩溃的问题,比较遗憾的是没有查找到具体是什么地方导致了崩溃,这个后面会继续努力。。。。。。。。
欢迎大家提出自己的想法和意见,可以以回复的形式提出,或者加入我的QQ群大家一起交流,互相思考。
名 称:openwrt开发
群 号: 331230369
名 称:openwrt2(流控+无线认证)
群 号:318937037
名 称:ApFree支持 (注:本群为商业合作咨询群,加群的朋友请求请注明“合作咨询”)
群 号: 208461032
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|