编程珠玑 5.10调试

来源:互联网 发布:井上真央松本润 知乎 编辑:程序博客网 时间:2024/05/18 13:30

那些年踩过的坑:

1、同事代码调用航空公司接口,http:ip:port/?password=*******;发现运行一段时间后接口总是报错;而且是必然重现;拉扯了接口人员、网络人员、服务器人员交流了半天;从服务器请求连接数、防火墙层面上,一一排除还是无法解决。差点因此让航空公司修改接口调用方式。

最终,通过拦截客户端程序到服务器端程序的请求回复内容,发现请求url是http:ip:port/?password=*******&password=*******&password=*******&password=*******.....无限制拉长,到超出get字节限制之后报错。所以看到的现象是,程序重启或者初始化时运行正常,一段时间后报错。问题出在url拼接上。用静态变量存储,然后每次请求都把同样的值累加到url上。导致出现n个password=*******。修改后问题解决。与文中描述问题类似,变量重新赋值时候出了问题。


2、lvs使用dr模式,服务器都部署在同一局域网中。lvs有10个虚拟节点,但是实际运行的只有若干个节点,其他节点没有部署服务。对外提供服务器的时候,发现一段时间后(时间不定)外网访问会出现service unavailable。保留现场发现lvs运行正常,也无明显错误日志。咨询了红帽子人员也没有拿到实际的解决办法。部署服务的各个服务器节点又是正常运行的,每次重启lvs服务,问题解决~~~~~~

纠结了几个月,还是没有解决。有次保留现场灵机一动,逆向来请求lvs地址。使用ssh客户端登录lvs对外提供服务器的地址。10台服务器的登录账号密码一一尝试。最终定位到lvs指向到某一台没有提供服务的服务器上,由于没有服务,所以出现service unavailable错误提示,然而lvs的节点配置那里,没有该机器。

so推测,lvs的路由信息,由于某种原因导致错乱。指向没有配置的机器。最终,检查该机器配置,去除lvs虚地址配置,修改服务器arp抑制配置项。问题解决。。。

0 0