遇见的问题记录

1、问题现象:servicemanager启动各个模块的时候,启动命令必须后台运行,否则,启动命令执行之后会卡住,导致servicemanager代码走不下去,其它未被初始化的模块不会初始化,servicemanager也不能正常使用,注意:这个问题在有些项目中却不存在(相关代码一样)。

解决方法:进程启动命令改为后台启动。

2、问题现象:统一平台V2R0.3项目的ftp,在需要账号密码的应用,在配置全恢复的时候,账号等参数是从param.xml文件读取的,所以,如果param.xml里面的某个应用的账号密码是空的,没有预制,会导致servicemanager无法启动,这个问题在ftp中遇见过。

解决方法:在param.xml中预制账号密码

3、问题现象:四川融合网关ntp不能同步,机顶盒时间不能同步,但是,手动执行ntp同步正常。

首先,四川局方要求ntp只能同步一次,而且要求使用管理通道,服务器使用局方搭建的,但是,我们理解成了只能发起一次同步,而且,网关配置了至少两条wan连接,一条tr069的,一条internet的,internet的wan拿到地址之后会下发默认路由,tr069的wan拿到地址之后会下发一条201的策略路由,所以,当策略路由下发之前,ntp会走默认路由,即走internet的wan出去,导致不能从指定的ntp服务器同步时间。在service_ntpdate_check脚本中,启动ntp进程之前判断201的策略路由是否下发,没有下发则不进行ntp同步。这就解决了ntp同步通道错误的问题。其次,还有ntp发起同步之后,往服务器发包,但是服务器不响应的问题,由于不知道服务器所在位置,没有办法定位服务器是否已经收到我们网关发出的包,所以,没有办法定位,后来找局方要到了其它友商的设备验收时抓得包,我们才发现,原来友商的设备上面也存在发起ntp同步,但是服务器不响应的问题,但是,友商的设备会过一段时间再次发起同步,直至ntp同步成功为止。但是,之前我们一直理解错了局方提的要求,局方说ntp只能同步一次,我们理解成了只能发起一次ntp请求,不管ntp同步成功与否,不再发起ntp同步。所以,我们的做法是ntp同步成功之前,每隔30秒发起一次ntp同步,ntp同步成功之后不再发起ntp同步。

解决方法:策略路由下发成功之前不进行ntp同步。

4、问题现象:融合网关机顶盒概率性拿不到地址的问题。

融合网关机顶盒概率性拿不到地址的问题。网关设置是在wancc_start();调用之前先添加一条规则iptables -A INPUT -i br0 -p udp -m udp --dport 67 -j DROP,为了防止同样的规则被添加两次,一般是先删除,然后再添加。在wancc_start();调用之后再添加一条规则iptables -D INPUT -i br0 -p udp -m udp --dport 67 -j DROP。但是,删除的命令会概率性的删除失败,当删除失败之后就会出现融合网关的机顶盒拿不到地址的情况。在机顶盒拿不到地址的时候,连接网关的pc也拿不到地址,通过udhcpd的log发现dhcpd是收到了dhcp请求包的,但是,却没有继续按照dhcp的流程走下去,串口查看iptables规则发现丢弃67端口的包的规则没有删除,通过log发现,实际是去做了删除的动作,只是,没有删除成功。

解决方法:有两个解决方法,一个是在iptables命令里面添加-w参数,一个是通过循环来实现,执行删除命令之后,查看一下规则是否存在,存在则再次删除,直到规则不存在则退出循环。

5、问题现象:dhcp的wan连接在拔掉光纤之后,wan连接断开,光纤再次插上的时候,wan连接概率性的不会恢复,建有两个wan连接,一个vid为10的,一个vid为1000的。

解决方法:因为dhcp的wan连接在拿到地址之后会有一个相应的arping进程来监控这个wan连接的状态,在启动之前都会先杀死之前的arping进程,然后再启动新的,dhcp.bound和dhcp.renew脚本里面会有kill `ps | grep arping | grep ${interface} | awk '{print $1}'`命令,但是,因为pon0.10可以匹配pon0.1000,所以,存在杀错的情况,这也就是概率性的出现拔掉光纤之后,wan连接显示断开,但是,插上光纤之后,有个wan连接却概率性的不能恢复的情况。后来,修改成kill `ps | grep arping | grep -w ${interface} | awk '{print $1}'`,这样修改之后,功能是正常了,但是,实际情况却是当前linux系统不支持grep的-w参数,导致这条命令没有执行成功,也就是没有成功杀死这条arping进程,没杀死的情况下,网关还是正常的。所以,后来就只有在接口的前后添加一个空格,如kill `ps | grep arping | grep ' ${interface} ' | awk '{print $1}'`。

6、问题现象:移动政企融合网关在机顶盒上面用遥控器配置wan连接之后,在网关的wan连接拿到地址之后,机顶盒上面不能更新wan连接的信息,机顶盒上面显示还是没有连接。但是,在机顶盒上面用遥控操作一下,让机顶盒去主动获取一下就一切正常。

解决方法:这是因为机顶盒不能一直轮询,他们在建立wan连接之后8s的时候会查询一下,之后就不会查询了,如果创建wan连接之后8s的时候网关还没有拿到地址,那么,之后即使拿到了地址机顶盒这边也不会知道,后来由机顶盒那边制定合适的获取策略来保证能正确获取到地址信息。

7、可以在makefile里面直接指定使用的库文件的路径,这样编译的时候就会去指定的路径下面查找相应的库文件,而不会去其它地方找,添加的

猜你喜欢

转载自blog.csdn.net/u011029104/article/details/102664610