一、问题描述
多项目均出现多例系统卡死情况,中控及方控按键操作无效,进入全景倒车可正常显示。
二、问题分析
经客户提供日志分析,发现处理MCU协议的核心服务进程com.***.service中的***Service出现线程阻塞,该类用于处理透传协议的派发、切源逻辑、MCU部分协议的等,异常时可看到用于透传协议的线程池数量一直在持续增长。
同时日志中发现导航进程出现类似“amap_so : >>get so crash<< signum:6”的日志打印,该打印后即出现com.***.service进程透传协议派发数量开始增长。从高德了解到,当导航应用出现crash时,会拦截系统信号量,抓取进程崩溃现场,处理完毕后再通知系统进行回收。但出现异常时,直至用户硬按键重启,日志中均未看到导航进程被有效回收。
由于导航需监听实车速度、电源等状态,故提供了协议透传binder监听接口供导航使用,当导航进程出现dumpcrash异常时,进程实际已处于等待回收状态,此时协议透传binder回调无法有效响应,即导致了com.*