EasyGBS内存错误导致崩溃该如何解决?
国标视频云服务EasyGBS支持设备/平台通过国标GB28181协议注册接入,并能实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP、RTMP、FLV、HLS、WebRTC等格式。
有用户反馈EasyGBS中go的内存错误导致平台出现如下崩溃现象:“runtime: marked free object in span 0x7f8e806df8b0, elemsize=16 freeindex=43 (bad use of unsafe.Pointer? try -d=checkptr)”
技术人员收到反馈后立即开展排查分析。首先查看日志,在查看日志时出现以下的日志信息。开始播放流未完成,就立刻停止播放此句柄。导致找不到停止的句柄,随后go层也删除掉了保存在本地的缓存信息。
而正常的打印都会有一个句柄,如下:
从打印的结果可以判断问题原因是内存错误。
解决方法:
出现以上情况时需判断此实时流是不是返回成功,若没有返回成功,则此实时流的句柄是空的。只需在代码中判断句柄是否为空即可。
EasyGBS平台已经实现了十分丰富的安防视频功能,在线下也有大量落地应用,包括明厨亮灶、雪亮工程、美好乡村、智慧工地、智慧仓库监控等等。感兴趣的用户可以前往演示平台进行体验或部署测试。