Bug #118104

【IOVDEV-29385】【内部】【VC1】【0095】【台架】【EE环境】【副屏】【Monkey】副屏昨晚跑monkey命令死机,副屏黑屏无反应,电脑用USB线,adb命令连接不上控制器

Added by CDTS_Test 吴诗雨 about 2 years ago. Updated about 2 years ago.

Status:CLOSEDStart date:2023-05-19
Priority:NormalDue 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

Also available in: Atom PDF