EasyDSS视频平台DASH版本发现日志打印panic排查及解决方式

本文介绍EasyDSS_DASH版本在运行过程中遇到的日志打印panic问题,通过分析发现原因是程序代码逻辑错误导致数组越界,最终通过对代码进行优化解决了该问题。

之前我们和大家分享过EasyDSS开发的Dash版本,EasyDSS新增Dash版本后,可允许客户端根据网络带宽情况自动选择合适的码流进行播放,便于适应网络带宽抖动,同时最大程度上为终端用户提供最好的服务质量,此外,拥有Dash技术的EasyDSS还在CDN分发方面有着更大的优势。

image.png

当我们测试EasyDSS_DASH版本时,运行程序后发现日志打印panic,如下图:

1.png

一般该问题出现的原因大部分都是Linux kernel不知道如何走了,它会尽可能把它此时能获取的全部信息都打印出来,程序中出现panic会导致程序不稳定、宕机。当发生panic之后,当前函数使用了recover,则捕获了这个错误,如上图,可以看到发生错误的位置。

经查询,发现问题出现panic,是程序代码逻辑有问题,问题出现在查找录像快照的方法中,FindAllString()返回一个数组,再取值下标未做判断越界,导致程序报panic。如下图:

2.png

此处我们优化代码,当再次获取到string数组时,系统会根据其长度大小判断所取值下标是否越界,以此来避免该类报错内容的出现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值