Binder无响应引起卡死

本文详细描述了一起由Binder无响应引发的系统卡死问题,问题出现在核心服务进程中,导致线程池数量持续增长。分析指出,导航进程的crash处理异常,使得协议透传binder回调无法响应,造成服务阻塞。解决方案包括优化导航主线程的dumpcrash处理和在服务端增加超时回收与进程重启机制。
摘要由CSDN通过智能技术生成

一、问题描述

多项目均出现多例系统卡死情况,中控及方控按键操作无效,进入全景倒车可正常显示。

二、问题分析

经客户提供日志分析,发现处理MCU协议的核心服务进程com.***.service中的***Service出现线程阻塞,该类用于处理透传协议的派发、切源逻辑、MCU部分协议的等,异常时可看到用于透传协议的线程池数量一直在持续增长。

同时日志中发现导航进程出现类似“amap_so : >>get so crash<< signum:6”的日志打印,该打印后即出现com.***.service进程透传协议派发数量开始增长。从高德了解到,当导航应用出现crash时,会拦截系统信号量,抓取进程崩溃现场,处理完毕后再通知系统进行回收。但出现异常时,直至用户硬按键重启,日志中均未看到导航进程被有效回收。

由于导航需监听实车速度、电源等状态,故提供了协议透传binder监听接口供导航使用,当导航进程出现dumpcrash异常时,进程实际已处于等待回收状态,此时协议透传binder回调无法有效响应,即导致了com.*

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shusuanly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值