Bug #118738

【AF】【EVT3】【实车】10:14左右 重新整车上电后 副屏卡顿TP无效 约卡顿一分钟左右自动重启

Added by CD TEST-方永红 about 2 years ago. Updated about 2 years ago.

Status:ASSIGNEDStart date:2023-06-12
Priority:UrgentDue date:
Assignee:CD BSP-余霄% Done:

0%

Category:BSP
Target version:-
Need_Info:-- Found Version:0106
Resolution:-- Degrated:--
Severity:Critical Verified Version:
Reproducibility:Occasionally Fixed Version:
Test Type:ST Root cause:

Description

【测试环境】
实车测试

【测试版本】
0106

【问题描述】
10:14左右 重新整车上电后 副屏卡顿TP无效 约卡顿一分钟左右自动重启


Subtasks

Bug #118743: 【AF】【EVT3】【实车】10:14左右 重新整车上电后 副屏卡顿TP无效 约卡顿一分钟左右自动重启NewCD LC 陶洪普

History

#2 Updated by CD FW 曹覃刚 about 2 years ago

  • Status changed from New to ASSIGNED
  • Assignee changed from CD FW 曹覃刚 to CD FW 郑雷

■ 我的分析
从日志看,重启了两次
anr_2023-06-12-10-09-32-980
anr_2023-06-12-10-10-15-146
"PowerManagerService" prio=5 tid=36 Native | group="main" sCount=1 ucsCount=0 flags=1 obj=0x156023d0 self=0xb4000072206412e0 | sysTid=1708 nice=-4 cgrp=default sched=0/0 handle=0x7007a32cb0 | state=S schedstat=( 55161504 109276879 745 ) utm=1 stm=4 core=0 HZ=100 | stack=0x700792f000-0x7007931000 stackSize=1039KB | held mutexes=
native: #00 pc 00000000000a1c88 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+8)
native: #01 pc 000000000005b8d4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
native: #02 pc 0000000000053070 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+292)
native: #03 pc 00000000000542e4 /system/lib64/libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*)+120)
native: #04 pc 0000000000053ff0 /system/lib64/libbinder.so (android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+224)
native: #05 pc 000000000004bafc /system/lib64/libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+196)
native: #06 pc 00000000000c6fd0 /system/lib64/libgui.so (android::BpSurfaceComposer::captureDisplay(android::DisplayCaptureArgs const&, android::sp<android::gui::IScreenCaptureListener> const&)+476)
native: #07 pc 00000000000f72a0 /system/lib64/libgui.so (android::ScreenshotClient::captureDisplay(android::DisplayCaptureArgs const&, android::sp<android::gui::IScreenCaptureListener> const&)+80)
native: #08 pc 0000000000131f4c /system/lib64/libandroid_runtime.so (android::nativeCaptureDisplay(_JNIEnv*, _jclass*, _jobject*, _jobject*)+540)
at android.view.SurfaceControl.nativeCaptureDisplay(Native method)
at android.view.SurfaceControl.captureDisplay(SurfaceControl.java:2300)
at android.view.SurfaceControl.captureDisplay(SurfaceControl.java:2312)
at com.android.server.display.DisplayManagerService.systemScreenshotInternal(DisplayManagerService.java:1647)
- locked <0x0a0bd0e3> (a com.android.server.display.DisplayManagerService$SyncRoot)
at com.android.server.display.DisplayManagerService.access$6200(DisplayManagerService.java:185)
at com.android.server.display.DisplayManagerService$LocalService.systemScreenshot(DisplayManagerService.java:3165)
at com.android.server.display.ColorFade.captureScreen(ColorFade.java:558)
at com.android.server.display.ColorFade.prepare(ColorFade.java:178)
at com.android.server.display.DisplayPowerState.prepareColorFade(DisplayPowerState.java:227)
at com.android.server.display.DisplayPowerController.animateScreenStateChange(DisplayPowerController.java:1897)
at com.android.server.display.DisplayPowerController.updatePowerState(DisplayPowerController.java:1114)
at com.android.server.display.DisplayPowerController.access$700(DisplayPowerController.java:97)
at com.android.server.display.DisplayPowerController$DisplayControllerHandler.handleMessage(DisplayPowerController.java:2404)
at android.os.Handler.dispatchMessage(Handler.java:106)
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)

06-12 10:10:22.287 1561 1631 W Watchdog: *** WATCHDOG KILLING SYSTEM PROCESS: Blocked in monitor com.android.server.power.PowerManagerService on foreground thread (android.fg), Blocked in handler on main thread (main), Blocked in handler on PowerManagerService (PowerManagerService)
//第一次重启, block在PowerManagerService

anr_2023-06-12-10-11-24-523
anr_2023-06-12-10-11-58-328
anr_2023-06-12-10-13-10-648
"main" prio=5 tid=1 Sleeping | group="main" sCount=1 ucsCount=0 flags=1 obj=0x7144b078 self=0xb4000079d29dc7b0 | sysTid=9076 nice=-2 cgrp=default sched=0/0 handle=0x7ba28614f8 | state=S schedstat=( 1282160011 17707678208 2695 ) utm=103 stm=24 core=1 HZ=100 | stack=0x7fed208000-0x7fed20a000 stackSize=8188KB | held mutexes=
at java.lang.Thread.sleep(Native method)
- sleeping on <0x07a6ff1b> (a java.lang.Object)
at java.lang.Thread.sleep(Thread.java:451)
- locked <0x07a6ff1b> (a java.lang.Object)
at java.lang.Thread.sleep(Thread.java:356)
at android.net.util.NetdService.get(NetdService.java:96)
at android.net.util.NetdService.get(NetdService.java:114)
at com.android.server.NetworkManagementService$Dependencies.getNetd(NetworkManagementService.java:127)
at com.android.server.NetworkManagementService.connectNativeNetdService(NetworkManagementService.java:432)
at com.android.server.NetworkManagementService.create(NetworkManagementService.java:265)
at com.android.server.NetworkManagementService.create(NetworkManagementService.java:271)
at com.android.server.SystemServer.startOtherServices(SystemServer.java:1813)
at com.android.server.SystemServer.run(SystemServer.java:885)
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)

06-12 10:12:09.314 9076 9099 W Watchdog: *** WATCHDOG KILLING SYSTEM PROCESS: Blocked in handler on main thread (main)
//第二次重启

■ 下一步计划
1.解析PowerManagerService block的原因
2.LC的同学看看 NetdService sleep, 导致system_server主进程阻塞的原因 #118743

#3 Updated by CD FW 郑雷 about 2 years ago

  • Category changed from CD-FW to BSP
  • Assignee changed from CD FW 郑雷 to CD BSP-杜磊

[当前分析]
1.关于Watchdog: *** WATCHDOG KILLING SYSTEM PROCESS: Blocked in monitor com.android.server.power.PowerManagerService on foreground thread (android.fg), Blocked in handler on main thread (main), Blocked in handler on PowerManagerService (PowerManagerService)的分析。

06-12 10:10:22.180 1561 1631 E Watchdog: First set of traces taken from /data/anr/anr_2023-06-12-10-09-32-980
06-12 10:10:22.220 1561 1631 E Watchdog: Second set of traces taken from /data/anr/anr_2023-06-12-10-10-15-146
06-12 10:10:22.268 1561 8969 I DropBoxManagerService: add tag=system_server_watchdog isTagEnabled=true flags=0x6
06-12 10:10:22.283 2107 2107 D MicroService: onHeartBeatDetected
06-12 10:10:22.283 2107 2107 D MicroService: sendHeartbeatMessage
06-12 10:10:22.287 1561 1631 W Watchdog: * WATCHDOG KILLING SYSTEM PROCESS: Blocked in monitor com.android.server.power.PowerManagerService on foreground thread (android.fg), Blocked in handler on main thread (main), Blocked in handler on PowerManagerService (PowerManagerService)
06-12 10:10:22.287 1561 1631 W Watchdog: android.fg annotated stack trace:
06-12 10:10:22.287 1561 1631 W Watchdog: at com.android.server.power.PowerManagerService.monitor(PowerManagerService.java:4124)
06-12 10:10:22.288 1561 1631 W Watchdog: - waiting to lock <0x0423ac08> (a java.lang.Object)
06-12 10:10:22.288 1561 1631 W Watchdog: at com.android.server.Watchdog$HandlerChecker.run(Watchdog.java:275)
06-12 10:10:22.288 1561 1631 W Watchdog: at android.os.Handler.handleCallback(Handler.java:938)
06-12 10:10:22.288 1561 1631 W Watchdog: at android.os.Handler.dispatchMessage(Handler.java:99)
06-12 10:10:22.288 1561 1631 W Watchdog: at android.os.Looper.loopOnce(Looper.java:201)
06-12 10:10:22.288 1561 1631 W Watchdog: at android.os.Looper.loop(Looper.java:288)
06-12 10:10:22.288 1561 1631 W Watchdog: at android.os.HandlerThread.run(HandlerThread.java:67)
06-12 10:10:22.288 1561 1631 W Watchdog: at com.android.server.ServiceThread.run(ServiceThread.java:44)
06-12 10:10:22.288 1561 1631 W Watchdog: main annotated stack trace:
06-12 10:10:22.288 1561 1631 W Watchdog: at com.android.server.alarm.AlarmManagerService$DeliveryTracker.alarmComplete(AlarmManagerService.java:4835)
06-12 10:10:22.289 1561 1631 W Watchdog: - waiting to lock <0x0957b286> (a java.lang.Object)
06-12 10:10:22.289 1561 1631 W Watchdog: at com.android.server.alarm.AlarmManagerService$3.lambda$doAlarm$0$AlarmManagerService$3(AlarmManagerService.java:1684)
06-12 10:10:22.289 1561 1631 W Watchdog: at com.android.server.alarm.AlarmManagerService$3$$ExternalSyntheticLambda0.run(Unknown Source:4)
06-12 10:10:22.289 1561 1631 W Watchdog: at android.os.Handler.handleCallback(Handler.java:938)
06-12 10:10:22.289 1561 1631 W Watchdog: at android.os.Handler.dispatchMessage(Handler.java:99)
06-12 10:10:22.289 1561 1631 W Watchdog: at android.os.Looper.loopOnce(Looper.java:201)
06-12 10:10:22.289 1561 1631 W Watchdog: at android.os.Looper.loop(Looper.java:288)
06-12 10:10:22.289 1561 1631 W Watchdog: at com.android.server.SystemServer.run(SystemServer.java:909)
06-12 10:10:22.289 1561 1631 W Watchdog: at com.android.server.SystemServer.main(SystemServer.java:616)
06-12 10:10:22.289 1561 1631 W Watchdog: at java.lang.reflect.Method.invoke(Native Method)
06-12 10:10:22.289 1561 1631 W Watchdog: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
06-12 10:10:22.289 1561 1631 W Watchdog: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
06-12 10:10:22.292 1561 1631 W Watchdog: PowerManagerService annotated stack trace:
06-12 10:10:22.292 1561 1631 W Watchdog: at android.view.SurfaceControl.nativeCaptureDisplay(Native Method)
06-12 10:10:22.292 1561 1631 W Watchdog: at android.view.SurfaceControl.captureDisplay(SurfaceControl.java:2300)
06-12 10:10:22.292 1561 1631 W Watchdog: at android.view.SurfaceControl.captureDisplay(SurfaceControl.java:2312)
06-12 10:10:22.292 1561 1631 W Watchdog: at com.android.server.display.DisplayManagerService.systemScreenshotInternal(DisplayManagerService.java:1647)
06-12 10:10:22.292 1561 1631 W Watchdog: - locked <0x0a0bd0e3> (a com.android.server.display.DisplayManagerService$SyncRoot)
06-12 10:10:22.292 1561 1631 W Watchdog: at com.android.server.display.DisplayManagerService.access$6200(DisplayManagerService.java:185)
06-12 10:10:22.292 1561 1631 W Watchdog: at com.android.server.display.DisplayManagerService$LocalService.systemScreenshot(DisplayManagerService.java:3165)
06-12 10:10:22.292 1561 1631 W Watchdog: at com.android.server.display.ColorFade.captureScreen(ColorFade.java:558)
06-12 10:10:22.292 1561 1631 W Watchdog: at com.android.server.display.ColorFade.prepare(ColorFade.java:178)
06-12 10:10:22.292 1561 1631 W Watchdog: at com.android.server.display.DisplayPowerState.prepareColorFade(DisplayPowerState.java:227)
06-12 10:10:22.292 1561 1631 W Watchdog: at com.android.server.display.DisplayPowerController.animateScreenStateChange(DisplayPowerController.java:1897)
06-12 10:10:22.292 1561 1631 W Watchdog: at com.android.server.display.DisplayPowerController.updatePowerState(DisplayPowerController.java:1114)
06-12 10:10:22.292 1561 1631 W Watchdog: at com.android.server.display.DisplayPowerController.access$700(DisplayPowerController.java:97)
06-12 10:10:22.292 1561 1631 W Watchdog: at com.android.server.display.DisplayPowerController$DisplayControllerHandler.handleMessage(DisplayPowerController.java:2404)
06-12 10:10:22.292 1561 1631 W Watchdog: at android.os.Handler.dispatchMessage(Handler.java:106)
06-12 10:10:22.293 1561 1631 W Watchdog: at android.os.Looper.loopOnce(Looper.java:201)
06-12 10:10:22.293 1561 1631 W Watchdog: at android.os.Looper.loop(Looper.java:288)
06-12 10:10:22.293 1561 1631 W Watchdog: at android.os.HandlerThread.run(HandlerThread.java:67)
06-12 10:10:22.293 1561 1631 W Watchdog: at com.android.server.ServiceThread.run(ServiceThread.java:44)
06-12 10:10:22.293 1561 1631 W Watchdog: *
GOODBYE!
06-12 10:10:22.293 1561 1631 I Process : Sending signal. PID: 1561 SIG: 9

从anr_2023-06-12-10-09-32-980、anr_2023-06-12-10-10-15-146、traces_SystemServer_WDT12_06_10_10_22.179_pid1561看,都是PowerManagerService的前台线程android.fg被block

调用堆栈:
"android.fg" prio=5 tid=11 Blocked | group="main" sCount=1 ucsCount=0 flags=1 obj=0x15600fb8 self=0xb400007220619330 | sysTid=1624 nice=0 cgrp=default sched=0/0 handle=0x70224eecb0 | state=S schedstat=( 206118731 296311971 1017 ) utm=16 stm=3 core=2 HZ=100 | stack=0x70223eb000-0x70223ed000 stackSize=1039KB | held mutexes=
at com.android.server.power.PowerManagerService.monitor(PowerManagerService.java:4124)
- waiting to lock <0x0423ac08> (a java.lang.Object) held by thread 58
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)

看门狗线程要去获取0x0423ac08锁来检测PowerManagerService是否阻塞,但是0x0423ac08锁被thread 58持有。

"AlarmManager" prio=5 tid=58 Blocked | group="main" sCount=1 ucsCount=0 flags=1 obj=0x14c42808 self=0xb40000722064f160 | sysTid=1809 nice=0 cgrp=default sched=0/0 handle=0x6ff4ec8cb0 | state=S schedstat=( 22884789 16344482 92 ) utm=1 stm=0 core=1 HZ=100 | stack=0x6ff4dc5000-0x6ff4dc7000 stackSize=1039KB | held mutexes=
at com.android.server.display.DisplayManagerService$LocalService.requestPowerState(DisplayManagerService.java:3119)
- waiting to lock <0x0a0bd0e3> (a com.android.server.display.DisplayManagerService$SyncRoot) held by thread 36
at com.android.server.power.PowerManagerService.updateDisplayPowerStateLocked(PowerManagerService.java:3203)
at com.android.server.power.PowerManagerService.updatePowerStateLocked(PowerManagerService.java:2159)
at com.android.server.power.PowerManagerService.acquireWakeLockInternal(PowerManagerService.java:1417)
- locked <0x0423ac08> (a java.lang.Object)
at com.android.server.power.PowerManagerService.access$4600(PowerManagerService.java:139)
at com.android.server.power.PowerManagerService$BinderService.acquireWakeLock(PowerManagerService.java:5175)
at android.os.PowerManager$WakeLock.acquireLocked(PowerManager.java:2720)
at android.os.PowerManager$WakeLock.acquire(PowerManager.java:2686)
- locked <0x033f4ae0> (a android.os.Binder)
at com.android.server.alarm.AlarmManagerService$DeliveryTracker.deliverLocked(AlarmManagerService.java:4968)
at com.android.server.alarm.AlarmManagerService.deliverAlarmsLocked(AlarmManagerService.java:4006)
at com.android.server.alarm.AlarmManagerService$AlarmThread.run(AlarmManagerService.java:4251)
- locked <0x0957b286> (a java.lang.Object)

thread 58又在等待0x0a0bd0e3锁,0x0a0bd0e3被thread 36持有。

"PowerManagerService" prio=5 tid=36 Native | group="main" sCount=1 ucsCount=0 flags=1 obj=0x156023d0 self=0xb4000072206412e0 | sysTid=1708 nice=-4 cgrp=default sched=0/0 handle=0x7007a32cb0 | state=S schedstat=( 55161504 109276879 745 ) utm=1 stm=4 core=0 HZ=100 | stack=0x700792f000-0x7007931000 stackSize=1039KB | held mutexes=
native: #00 pc 00000000000a1c88 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+8)
native: #01 pc 000000000005b8d4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
native: #02 pc 0000000000053070 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+292)
native: #03 pc 00000000000542e4 /system/lib64/libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*)+120)
native: #04 pc 0000000000053ff0 /system/lib64/libbinder.so (android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+224)
native: #05 pc 000000000004bafc /system/lib64/libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+196)
native: #06 pc 00000000000c6fd0 /system/lib64/libgui.so (android::BpSurfaceComposer::captureDisplay(android::DisplayCaptureArgs const&, android::sp<android::gui::IScreenCaptureListener> const&)+476)
native: #07 pc 00000000000f72a0 /system/lib64/libgui.so (android::ScreenshotClient::captureDisplay(android::DisplayCaptureArgs const&, android::sp<android::gui::IScreenCaptureListener> const&)+80)
native: #08 pc 0000000000131f4c /system/lib64/libandroid_runtime.so (android::nativeCaptureDisplay(_JNIEnv*, _jclass*, _jobject*, _jobject*)+540)
at android.view.SurfaceControl.nativeCaptureDisplay(Native method)
at android.view.SurfaceControl.captureDisplay(SurfaceControl.java:2300)
at android.view.SurfaceControl.captureDisplay(SurfaceControl.java:2312)
at com.android.server.display.DisplayManagerService.systemScreenshotInternal(DisplayManagerService.java:1647)
- locked <0x0a0bd0e3> (a com.android.server.display.DisplayManagerService$SyncRoot)
at com.android.server.display.DisplayManagerService.access$6200(DisplayManagerService.java:185)
at com.android.server.display.DisplayManagerService$LocalService.systemScreenshot(DisplayManagerService.java:3165)
at com.android.server.display.ColorFade.captureScreen(ColorFade.java:558)
at com.android.server.display.ColorFade.prepare(ColorFade.java:178)
at com.android.server.display.DisplayPowerState.prepareColorFade(DisplayPowerState.java:227)
at com.android.server.display.DisplayPowerController.animateScreenStateChange(DisplayPowerController.java:1897)
at com.android.server.display.DisplayPowerController.updatePowerState(DisplayPowerController.java:1114)
at com.android.server.display.DisplayPowerController.access$700(DisplayPowerController.java:97)
at com.android.server.display.DisplayPowerController$DisplayControllerHandler.handleMessage(DisplayPowerController.java:2404)
at android.os.Handler.dispatchMessage(Handler.java:106)
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)

从thread 36的堆栈看,它正在执行binder调用到SurfaceFlinger进程。接下来看下SurfaceFlinger进程的信息。

----- pid 984 at 2023-06-12 10:10:16.167425670+0800 -----
Cmd line: /system/bin/surfaceflinger
ABI: 'arm64'

"surfaceflinger" sysTid=984
#00 pc 00000000000a2c4c /apex/com.android.runtime/lib64/bionic/libc.so (_epoll_pwait+12) (BuildId: 369edc656806aeaf384cbeb8f7a347af)
#01 pc 0000000000017ea8 /system/lib64/libutils.so (android::Looper::pollInner(int)+184) (BuildId: b940f836006eead456c936e97e64d2d4)
#02 pc 0000000000017d84 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+116) (BuildId: b940f836006eead456c936e97e64d2d4)
#03 pc 000000000016f870 /system/bin/surfaceflinger (android::impl::MessageQueue::waitMessage()+88) (BuildId: 9e93e9ccd42ba048dfd020375b5b0dd4)
#04 pc 00000000001891d4 /system/bin/surfaceflinger (android::SurfaceFlinger::run()+100) (BuildId: 9e93e9ccd42ba048dfd020375b5b0dd4)
#05 pc 00000000001d7248 /system/bin/surfaceflinger (main+1640) (BuildId: 9e93e9ccd42ba048dfd020375b5b0dd4)
#06 pc 000000000004a084 /apex/com.android.runtime/lib64/bionic/libc.so (
_libc_init+100) (BuildId: 369edc656806aeaf384cbeb8f7a347af)

"Binder:984_1" sysTid=1097
#00 pc 00000000000a1c88 /apex/com.android.runtime/lib64/bionic/libc.so (_ioctl+8) (BuildId: 369edc656806aeaf384cbeb8f7a347af)
#01 pc 000000000005b8d4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156) (BuildId: 369edc656806aeaf384cbeb8f7a347af)
#02 pc 0000000000066b40 /system/lib64/libhidlbase.so (android::hardware::IPCThreadState::transact(int, unsigned int, android::hardware::Parcel const&, android::hardware::Parcel*, unsigned int)+1540) (BuildId: c608f6971797e3ae95b93820aa139249)
#03 pc 00000000000663dc /system/lib64/libhidlbase.so (android::hardware::BpHwBinder::transact(unsigned int, android::hardware::Parcel const&, android::hardware::Parcel*, unsigned int, std::
_1::function<void (android::hardware::Parcel&)>)+80) (BuildId: c608f6971797e3ae95b93820aa139249)
#04 pc 0000000000011354 /system/lib64/ (android::hardware::graphics::allocator::V3_0::BpHwAllocator::_hidl_allocate(android::hardware::IInterface*, android::hardware::details::HidlInstrumentor*, android::hardware::hidl_vec<unsigned int> const&, unsigned int, std::__1::function<void (android::hardware::graphics::mapper::V3_0::Error, unsigned int, android::hardware::hidl_vec<android::hardware::hidl_handle> const&)>) (.cfi)+432) (BuildId: 9e99b70c76edd03555855529c53ae3c9)
#05 pc 0000000000010b9c /system/lib64/ (android::hardware::graphics::allocator::V3_0::BpHwAllocator::allocate(android::hardware::hidl_vec<unsigned int> const&, unsigned int, std::__1::function<void (android::hardware::graphics::mapper::V3_0::Error, unsigned int, android::hardware::hidl_vec<android::hardware::hidl_handle> const&)>)+168) (BuildId: 9e99b70c76edd03555855529c53ae3c9)
#06 pc 000000000002d5b8 /system/lib64/libui.so (android::Gralloc3Allocator::allocate(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned int, unsigned int, int, unsigned int, unsigned long, unsigned int, unsigned int*, native_handle const**, bool) const+224) (BuildId: 340f577d9dcac1454a4c9b79cdd3f91a)
#07 pc 00000000000380c8 /system/lib64/libui.so (android::GraphicBufferAllocator::allocateHelper(unsigned int, unsigned int, int, unsigned int, unsigned long, native_handle const**, unsigned int*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool)+320) (BuildId: 340f577d9dcac1454a4c9b79cdd3f91a)
#08 pc 00000000000384e0 /system/lib64/libui.so (android::GraphicBufferAllocator::allocate(unsigned int, unsigned int, int, unsigned int, unsigned long, native_handle const**, unsigned int*, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)+140) (BuildId: 340f577d9dcac1454a4c9b79cdd3f91a)
#09 pc 0000000000036188 /system/lib64/libui.so (android::GraphicBuffer::initWithSize(unsigned int, unsigned int, int, unsigned int, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)+216) (BuildId: 340f577d9dcac1454a4c9b79cdd3f91a)
#10 pc 0000000000036060 /system/lib64/libui.so (android::GraphicBuffer::GraphicBuffer(unsigned int, unsigned int, int, unsigned int, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)+128) (BuildId: 340f577d9dcac1454a4c9b79cdd3f91a)
#11 pc 00000000001cbd48 /system/bin/surfaceflinger (android::surfaceflinger::DefaultFactory::createGraphicBuffer(unsigned int, unsigned int, int, unsigned int, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)+128) (BuildId: 9e93e9ccd42ba048dfd020375b5b0dd4)
#12 pc 00000000001acf4c /system/bin/surfaceflinger (android::SurfaceFlinger::captureScreenCommon(std::__1::future<std::__1::unique_ptr<android::RenderArea, std::__1::default_delete<android::RenderArea> > >, std::__1::function<void (std::__1::function<void (android::Layer*)> const&)>, android::ui::Size, android::hardware::graphics::common::V1_2::PixelFormat, bool, bool, android::sp<android::gui::IScreenCaptureListener> const&)+968) (BuildId: 9e93e9ccd42ba048dfd020375b5b0dd4)
#13 pc 00000000001aca00 /system/bin/surfaceflinger (android::SurfaceFlinger::captureDisplay(android::DisplayCaptureArgs const&, android::sp<android::gui::IScreenCaptureListener> const&)+2020) (BuildId: 9e93e9ccd42ba048dfd020375b5b0dd4)
#14 pc 00000000000c31d0 /system/lib64/libgui.so (android::BnSurfaceComposer::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+8828) (BuildId: 448b4199bacacf9417cd93df4f7390f5)
#15 pc 00000000001aa5c8 /system/bin/surfaceflinger (android::SurfaceFlinger::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+852) (BuildId: 9e93e9ccd42ba048dfd020375b5b0dd4)
#16 pc 0000000000049880 /system/lib64/libbinder.so (android::BBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+252) (BuildId: 07bc4d4147790b1e0ac44f7625168f4a)
#17 pc 00000000000538cc /system/lib64/libbinder.so (android::IPCThreadState::executeCommand(int)+1048) (BuildId: 07bc4d4147790b1e0ac44f7625168f4a)
#18 pc 00000000000533e8 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+164) (BuildId: 07bc4d4147790b1e0ac44f7625168f4a)
#19 pc 0000000000053c98 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+72) (BuildId: 07bc4d4147790b1e0ac44f7625168f4a)
#20 pc 0000000000080484 /system/lib64/libbinder.so (android::PoolThread::threadLoop()+28) (BuildId: 07bc4d4147790b1e0ac44f7625168f4a)
#21 pc 000000000001358c /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+264) (BuildId: b940f836006eead456c936e97e64d2d4)
#22 pc 0000000000012de8 /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+408) (BuildId: b940f836006eead456c936e97e64d2d4)
#23 pc 00000000000b6a24 /apex/com.android.runtime/lib64/bionic/libc.so (_pthread_start(void*)+264) (BuildId: 369edc656806aeaf384cbeb8f7a347af)
#24 pc 00000000000532bc /apex/com.android.runtime/lib64/bionic/libc.so (
_start_thread+68) (BuildId: 369edc656806aeaf384cbeb8f7a347af)

从SurfaceFlinger的binder线程Binder:984_1的堆栈看,Binder:984_1在执行captureDisplay方法在申请GraphicBuffer,binder调用到的allocate方法,但是没有返回,被block在住了。引起了WATCHDOG异常

[下一步Action]
需要BSP Display team帮忙分析的allocate没有返回的原因。

#4 Updated by CD BSP-杜磊 about 2 years ago

为高通相关库。

next step:
起case咨询高通

#5 Updated by CD BSP-杜磊 about 2 years ago

Qcom Case

06674564

#6 Updated by CD BSP-杜磊 about 2 years ago

  • Description updated (diff)

#7 Updated by CD BSP-杜磊 about 2 years ago

  • Description updated (diff)

#8 Updated by CD BSP-杜磊 about 2 years ago

高通回复如下:
How did you copy this issue? from my experience, it should relate to the APP side.
some mis-operation in uplayer will cause this buffer allocator issue. as usual,
if you can figure out where/how this issue occurred within the APP, just remove them to varify.

#9 Updated by CD BSP-杜磊 about 2 years ago

  • Assignee changed from CD BSP-杜磊 to CD BSP-余霄

Also available in: Atom PDF