dlserv部署时发生的问题

    天气热,人容易浮躁,n多天没有更新blog了,端午节希望家人和朋友们快乐。         最近一阵比较忙,还有一个bug未解,心中很是不爽。都是dlserv惹得祸,在温州测试时候出现了异常,接受ie,firefox,flashget,xunlei,旋风的http请求时,表现正常。但是自己的客户端发包解析时,发生了异常。         开始以为是单件模式在初始化接受大规模并发请求时,加锁的问题。后来,把端口改成8085测试,发现单进程请求也表现异常,明明是一个正常的GET请求,到了温州的FC5机器上,解析模块返回403,后来当包多了以后发生了segment fault,晕。         赶紧把程序拿到本地测试,用VC写了一个测试用client,发送一样的报文,在本地parser,绝对正常。拿到温州去debug,第一个包就403错 误。怀疑是包装thttpd的parser模块时,头文件没用用ifndef _cplusplus,编译出来的.a文件直接被c++调用。周二上班,重新make一个库文件。模拟温州的环境测试一下。            重新编译了一个.a文件,试一下还是不行, 怀疑是glibc库的版本不一样,重新查了一下linux版本,glibc版本。一模一样,没办法了,只好登录到温州,开gdb一步一步跟。最后发现parser解析时,不支持链接文件(link)只要本目录里面有link文件,且文件名和请求路径相同,就会发生错误。调了n天的bug终于水落石出了。         我在本机测试时,没有涉及到链接文件,libparser库表现完全正常,但是部署的环境里是存在同名的link文件导致库工作异常,最后segment fault。     总结:写程序要充分估计变更点(链接文件,虚拟目录...),部署时,开发机、生产机的环境尽量保持一致。出现bug异常,首先查看环境,然后gdb跟踪。很简单道理,但是有时确实引发我们意想不到的错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值