高通MDM9607平台--线程资源泄漏问题定位

某项目中,MDM9607平台的TTS报警设备在一定时间后出现播放ERROR。通过问题描述、分析、定位,发现是由于语音线程资源泄漏导致线程创建失败。解决方法是在线程中添加分离,使系统自动回收,经过压测,问题得到解决,TTS播放成功率提升至100%。
摘要由CSDN通过智能技术生成

高通MDM9607平台--线程资源泄漏问题定位

1、问题描述

客户xx公司,TTS报警项目,项目需求是在营业厅中放置一个报警设备,需要报警的时候,自动打电话并且在对端播报TTS报警。

在4个月之内,隔一段时间就会出现报警返回ERROR的问题。上周刚接到问题,以为是概率问题,并且抓不到log(log是使用printf打印,都打印到了atfwd_daemon进程中),上位机也得不到log,因此解决起来比较困难,一开始几天没重视,后来发现客户需要赶紧解决,不然要退货,这才看是看TTS代码。

2、问题分析

1、根据客户描述,这应该是linux应用问题,和底层无关
2、客户现场失败后,使用 AT+GTTS? 查询到播放标记为1
3、涉及场景是通话播放TTS
4、从现象看,大概率是软件问题,并且在我们公司应该可以复现

3、问题定位

根据上面分析,我们开始走读代码。我们的代码涉及到如下:

apps_proc/mdm-ss-mgr/atfwd-daemon
在这里插入图片描述
主要涉及
atfwd_misc.c、pcm_util.c、tts.c

因为是TTS返回ERROR,所以我们首先走读下TTS代码

TTS播放命令

at+gtts=1,“E5B9BFE5928CE9809AE697A0E7BABFE882A1E4BBBDE69C89E99990E585ACE58FB8”,0

tts_handle_tts_cmd是播放TTS的入口函数,但是如果当前正在播放TTS,也就说说,播放的标记为1,这个时候就会返回ERROR。

	                if(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值