zoukankan      html  css  js  c++  java
  • EasyDSS视频平台DASH版本发现日志打印panic排查及解决方式

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

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

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

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

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

  • 相关阅读:
    游戏编程模式--原型模式
    游戏编程模式--观察者模式
    游戏编程模式--享元模式
    游戏编程模式--命令模式
    mybatis的线程安全
    开发遇到的问题
    spring的ThreadLocal解决线程安全
    i++
    jvm内存初步了解
    注解@RequestMapping,@RequestBody
  • 原文地址:https://www.cnblogs.com/easydss/p/14867954.html
Copyright © 2011-2022 走看看