Bug #118104
【IOVDEV-29385】【内部】【VC1】【0095】【台架】【EE环境】【副屏】【Monkey】副屏昨晚跑monkey命令死机,副屏黑屏无反应,电脑用USB线,adb命令连接不上控制器
Status: | CLOSED | Start date: | 2023-05-19 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | CDTS_Test 吴诗雨 | % Done: | 100% | |
Category: | SYSTEM | |||
Target version: | - | |||
Need_Info: | -- | Found Version: |
【中控版本号】:03.02.0080.c101 【副屏版本号】:01.00.0095.c103 |
|
Resolution: | FIXED | Degrated: | No | |
Severity: | Normal | Verified Version: | ||
Reproducibility: | Rarely | Fixed Version: | 2023-05-12 | |
Test Type: | ST | Root cause: | 小窗动画导致的死锁ANR,在05/11之后的版本是已经被修复的了 |
Description
环境信息】EE环境
【问题出现时间】:20230519 08:50
【前提条件】:副屏上电
【操作步骤】
1.执行最新的monkey命令
2.不收集实时日志
3.清空第三方应用
【实际结果】
1.副屏黑屏,adb命令连接不到
【期望结果】
1.副屏正常跑monkey命令
【备注】:
第132次开机
掉电重启后恢复正常,中间没有重启
日志、视频地址:https://ofs.human-horizons.com/#/download/index/YrW%2BMjPC3og%3D
中控VIN号:HRYTTESTVINMGM817
【中控版本号】:03.02.0080.c101
【副屏版本号】:01.00.0095.c103
History
#1 Updated by CDTS-TEST 周婷 about 2 years ago
日志已飞书提供
#2 Updated by CD FW 曹覃刚 about 2 years ago
在客户抓的30秒实时日志中
有屏端异常断电或数据线断开的日志
tlog_iov0201017500006162025411a2212290000000601_000132_0519115814 30秒实时日志 /logcat/000132_manual_00003_230519_115742.log:1246:01-01 08:00:19.351 0 0 E DTC_Display: Abnormal power down or data-cable disconnect(0x16)
tlog_iov0201017500006162025411a2212290000000601_000132_0519115814 30秒实时日志 /logcat/000132_manual_00003_230519_115742.log:1283:01-01 08:00:21.367 0 0 E DTC_Display: Abnormal power down or data-cable disconnect(0x16)
tlog_iov0201017500006162025411a2212290000000601_000132_0519115814 30秒实时日志 /logcat/000132_manual_00003_230519_115742.log:1318:01-01 08:00:23.383 0 0 E DTC_Display: Abnormal power down or data-cable disconnect(0x16)
#3 Updated by CD FW 曹覃刚 about 2 years ago
- Category changed from CD-FW to SYSTEM
- Status changed from New to NEED_INFO
- Assignee changed from CD FW 曹覃刚 to CDTS-TEST 周婷
等待客户确认DTC
#4 Updated by 物联网项目组-RD3_CDTS 周飞 about 2 years ago
- Status changed from NEED_INFO to ASSIGNED
- Assignee changed from CDTS-TEST 周婷 to CD FW 曹覃刚
排查“adb命令连接不上控制器”的问题
#5 Updated by CD FW 曹覃刚 about 2 years ago
- Status changed from ASSIGNED to RESOLVED
- Assignee changed from CD FW 曹覃刚 to CDTS_Test 吴诗雨
- % Done changed from 0 to 100
- Resolution changed from -- to FIXED
- Degrated changed from -- to No
- Fixed Version set to 2023-05-12
- Root cause set to 小窗动画导致的死锁ANR,在05/11之后的版本是已经被修复的了
排查“adb命令连接不上控制器”的问题
05-18 16:06:50.867 21327 23470 W Monkey : // WATCHDOG: Blocked in monitor com.android.server.wm.WindowManagerService on foreground thread (android.fg), Blocked in handler on display thread (android.display), Blocked in handler on animation thread (android.anim), Blocked in handler on surface animation thread //monkey 停止 anr_2023-05-18-16-06-42-008 //原因是发生了ANR "main" prio=5 tid=1 Blocked | group="main" sCount=1 ucsCount=0 flags=1 obj=0x730be268 self=0xb400006f084e2be0 | sysTid=1503 nice=-2 cgrp=default sched=0/0 handle=0x70d04644f8 | state=S schedstat=( 94095090639 188760143349 898726 ) utm=5813 stm=3595 core=0 HZ=100 | stack=0x7fcaad4000-0x7fcaad6000 stackSize=8188KB | held mutexes= at com.android.server.am.ActivityManagerService.broadcastIntentWithFeature(ActivityManagerService.java:13720) - waiting to lock <0x0b085574> (a com.android.server.am.ActivityManagerService) held by thread 157 at android.app.ContextImpl.sendBroadcastAsUser(ContextImpl.java:1390) at com.android.server.alarm.AlarmManagerService$3.lambda$doAlarm$0$AlarmManagerService$3(AlarmManagerService.java:1681) at com.android.server.alarm.AlarmManagerService$3$$ExternalSyntheticLambda0.run(unavailable:-1) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at com.android.server.SystemServer.run(SystemServer.java:909) at com.android.server.SystemServer.main(SystemServer.java:616) at java.lang.reflect.Method.invoke(Native method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987) "Binder:1503_15" prio=5 tid=157 Blocked | group="main" sCount=1 ucsCount=0 flags=1 obj=0x1314a0b0 self=0xb400006f08633f80 | sysTid=13586 nice=-2 cgrp=default sched=0/0 handle=0x6c82f46cb0 | state=S schedstat=( 343038068000 96962002133 732532 ) utm=29220 stm=5083 core=1 HZ=100 | stack=0x6c82e4f000-0x6c82e51000 stackSize=991KB | held mutexes= at com.android.server.wm.WindowProcessController.setThread(WindowProcessController.java:274) - waiting to lock <0x01a1a34f> (a com.android.server.wm.WindowManagerGlobalLock) held by thread 15 at com.android.server.am.ProcessRecord.makeInactive(ProcessRecord.java:608) at com.android.server.am.ProcessRecord.onCleanupApplicationRecordLSP(ProcessRecord.java:960) at com.android.server.am.ActivityManagerService.cleanUpApplicationRecordLocked(ActivityManagerService.java:11815) - locked <0x0fcda2ba> (a com.android.server.am.ActivityManagerProcLock) at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:3085) at com.android.server.am.ActivityManagerService.appDiedLocked(ActivityManagerService.java:3198) at com.android.server.am.ActivityManagerService$AppDeathRecipient.binderDied(ActivityManagerService.java:1461) - locked <0x0b085574> (a com.android.server.am.ActivityManagerService) at android.os.IBinder$DeathRecipient.binderDied(IBinder.java:314) at android.os.BinderProxy.sendDeathNotice(BinderProxy.java:685) "android.anim" prio=5 tid=15 Blocked | group="main" sCount=1 ucsCount=0 flags=1 obj=0x131408b0 self=0xb400006f085136a0 | sysTid=1587 nice=-10 cgrp=default sched=0/0 handle=0x6d048cdcb0 | state=S schedstat=( 682361265761 265283283180 2797717 ) utm=53232 stm=15003 core=7 HZ=100 | stack=0x6d047ca000-0x6d047cc000 stackSize=1039KB | held mutexes= at com.android.server.wm.SurfaceAnimationRunner.onAnimationCancelled(SurfaceAnimationRunner.java:159) - waiting to lock <0x0faecadc> (a java.lang.Object) held by thread 16 - locked <0x016397e5> (a java.lang.Object) at com.android.server.wm.LocalAnimationAdapter.onAnimationCancelled(LocalAnimationAdapter.java:61) at com.android.server.wm.SurfaceAnimator.cancelAnimation(SurfaceAnimator.java:334) at com.android.server.wm.SurfaceAnimator.startAnimation(SurfaceAnimator.java:160) at com.android.server.wm.WindowContainer.startAnimation(WindowContainer.java:2526) at com.android.server.wm.WindowContainer.applyAnimationUnchecked(WindowContainer.java:2757) at com.android.server.wm.Task.applyAnimationUnchecked(Task.java:4072) at com.android.server.wm.WindowContainer.applyAnimation(WindowContainer.java:2628) at com.android.server.wm.AppTransitionController.applyAnimations(AppTransitionController.java:591) at com.android.server.wm.AppTransitionController.applyAnimations(AppTransitionController.java:725) at com.android.server.wm.AppTransitionController.handleAppTransitionReady(AppTransitionController.java:224) at com.android.server.wm.RootWindowContainer.checkAppTransitionReady(RootWindowContainer.java:1030) at com.android.server.wm.RootWindowContainer.performSurfacePlacementNoTrace(RootWindowContainer.java:869) at com.android.server.wm.RootWindowContainer.performSurfacePlacement(RootWindowContainer.java:805) at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:177) at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:126) at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:115) at com.android.server.wm.WindowSurfacePlacer$Traverser.run(WindowSurfacePlacer.java:57) - locked <0x01a1a34f> (a com.android.server.wm.WindowManagerGlobalLock) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.os.HandlerThread.run(HandlerThread.java:67) at com.android.server.ServiceThread.run(ServiceThread.java:44) "android.anim.lf" prio=5 tid=16 Blocked | group="main" sCount=1 ucsCount=0 flags=1 obj=0x13140998 self=0xb400006f08515270 | sysTid=1588 nice=-10 cgrp=default sched=0/0 handle=0x6d037c3cb0 | state=S schedstat=( 331145243471 175797958216 1707413 ) utm=22065 stm=11048 core=5 HZ=100 | stack=0x6d036c0000-0x6d036c2000 stackSize=1039KB | held mutexes= at com.android.server.wm.ActivityTaskManagerService.resizeTask(ActivityTaskManagerService.java:2725) - waiting to lock <0x01a1a34f> (a com.android.server.wm.WindowManagerGlobalLock) held by thread 15 at com.android.server.wm.WindowState$FreeformMoveAnimationSpec.apply(WindowState.java:6225) at com.android.server.wm.SurfaceAnimationRunner.applyTransformation(SurfaceAnimationRunner.java:242) at com.android.server.wm.SurfaceAnimationRunner.lambda$startAnimationLocked$3$SurfaceAnimationRunner(SurfaceAnimationRunner.java:193) - locked <0x0faecadc> (a java.lang.Object) at com.android.server.wm.SurfaceAnimationRunner$$ExternalSyntheticLambda0.onAnimationUpdate(unavailable:-1) at android.animation.ValueAnimator.animateValue(ValueAnimator.java:1566) at android.animation.ValueAnimator.animateBasedOnTime(ValueAnimator.java:1357) at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1489) at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:146) at android.animation.AnimationHandler.access$100(AnimationHandler.java:37) at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1118) at android.view.Choreographer.doCallbacks(Choreographer.java:926) at android.view.Choreographer.doFrame(Choreographer.java:854) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1105) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.os.HandlerThread.run(HandlerThread.java:67) at com.android.server.ServiceThread.run(ServiceThread.java:44) //根据上堆栈信息,可知,anr原因是发生了死锁 "android.fg" prio=5 tid=11 Blocked | group="main" sCount=1 ucsCount=0 flags=1 obj=0x13140510 self=0xb400006f0850ff00 | sysTid=1582 nice=0 cgrp=default sched=0/0 handle=0x6d08cf5cb0 | state=S schedstat=( 83195249271 84759242871 279997 ) utm=4601 stm=3718 core=6 HZ=100 | stack=0x6d08bf2000-0x6d08bf4000 stackSize=1039KB | held mutexes= at com.android.server.wm.WindowManagerService.monitor(WindowManagerService.java:6715) - waiting to lock <0x01a1a34f> (a com.android.server.wm.WindowManagerGlobalLock) held by thread 15 at com.android.server.Watchdog$HandlerChecker.run(Watchdog.java:275) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.os.HandlerThread.run(HandlerThread.java:67) at com.android.server.ServiceThread.run(ServiceThread.java:44) //另外,Watchdog的HandlerChecker线程也被block了,所以卡住的systemserver也一直没有被杀,导致系统一直是无响应的
结合上述内容,问题发生原因是由于发生了anr,系统整体是无响应的,直到测试重启设备
另外关于ANR死锁的原因是因为小窗的动画
at com.android.server.wm.ActivityTaskManagerService.resizeTask(ActivityTaskManagerService.java:2725)
- waiting to lock <0x01a1a34f> (a com.android.server.wm.WindowManagerGlobalLock) held by thread 15
at com.android.server.wm.WindowState$FreeformMoveAnimationSpec.apply(WindowState.java:6225)
但是小窗的动画已经被重新实现了,导致死锁的代码逻辑已经被删除了,提交如下,入库时间是05/11,因此新版本已经不存在问题了,需要测试同学使用新版本验证
https://dev.thundercomm.com/gerrit/c/general/platform/frameworks/base/+/199368
#6 Updated by CDTS_Test 吴诗雨 about 2 years ago
高平平:现场分析两个测试台架公用一个电源,当电流达到峰值后屏幕出现了黑屏,原因是电流不足背光无法打开,后续两个台架分开使用不同电源连续两天测试未复现出黑屏问题。
#7 Updated by CDTS_Test 吴诗雨 about 2 years ago
- Status changed from RESOLVED to VERIFIED
#8 Updated by CDTS_Test 吴诗雨 about 2 years ago
- Status changed from VERIFIED to CLOSED