am:fix the dead lock.
The crash log:
"binder:2147_1B" prio=5 tid=330 Blocked
| group="main" sCount=1 ucsCount=0 flags=1 obj=0x16178158 self=0xb4000074291c1640
| sysTid=6189 nice=-2 cgrp=foreground sched=1073741824/0 handle=0x6fdb48d730
| state=S schedstat=( 820274539993 1102645025298 3289471 ) utm=43949 stm=38078 core=7 HZ=100
| stack=0x6fdb396000-0x6fdb398000 stackSize=989KB
| held mutexes=
at com.android.server.am.AppRestrictionController.isSystemModule(AppRestrictionController.java:1614)
- waiting to lock <0x013e2e5c> (a java.lang.Object) held by thread 325
at com.android.server.am.AppRestrictionController.getPotentialSystemExemptionReason(AppRestrictionController.java:2935)
at com.android.server.am.ActiveServices$SystemExemptedFgsTypePermission.checkPermission(ActiveServices.java:3125)
at android.app.ForegroundServiceTypePolicy$DefaultForegroundServiceTypePolicy.checkForegroundServiceTypePolicy(ForegroundServiceTypePolicy.java:1413)
at com.android.server.am.ActiveServices.validateForegroundServiceType(ActiveServices.java:3051)
at com.android.server.am.ActiveServices.setServiceForegroundInnerLocked(ActiveServices.java:2787)
at com.android.server.am.ActiveServices.setServiceForegroundLocked(ActiveServices.java:1976)
at com.android.server.am.ActivityManagerService.setServiceForeground(ActivityManagerService.java:14841)
- locked <0x012ea0e8> (a com.android.server.am.ActivityManagerService)
at android.app.IActivityManager$Stub.onTransact$setServiceForeground$(IActivityManager.java:13479)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3716)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2992)
at android.os.Binder.execTransactInternal(Binder.java:1507)
at android.os.Binder.execTransact(Binder.java:1451)
—
"binder:2147_17" prio=5 tid=325 Blocked
| group="main" sCount=1 ucsCount=0 flags=1 obj=0x1612dd20 self=0xb4000074291bdea0
| sysTid=5372 nice=-20 cgrp=foreground sched=1073741824/0 handle=0x6ffa651730
| state=S schedstat=( 750705778322 1082786030003 3173156 ) utm=40274 stm=34796 core=0 HZ=100
| stack=0x6ffa55a000-0x6ffa55c000 stackSize=989KB
| held mutexes=
at com.android.server.am.ActivityManagerService$LocalService.isProfileOwner(ActivityManagerService.java:20529)
- waiting to lock <0x012ea0e8> (a com.android.server.am.ActivityManagerService) held by thread 330
at com.android.server.am.AppRestrictionController.getPotentialSystemExemptionReason(AppRestrictionController.java:2910)
at com.android.server.am.AppRestrictionController.getBackgroundRestrictionExemptionReason(AppRestrictionController.java:2861)
at com.android.server.am.BaseAppStatePolicy.shouldExemptUid(BaseAppStatePolicy.java:122)
at com.android.server.am.AppBatteryTracker.dump(AppBatteryTracker.java:865)
- locked <0x013e2e5c> (a java.lang.Object)
at com.android.server.am.AppRestrictionController.dump(AppRestrictionController.java:2024)
at com.android.server.am.ActivityManagerService.dumpAppRestrictionController(ActivityManagerService.java:11263)
at com.android.server.am.ActivityManagerService.doDump(ActivityManagerService.java:11720)
at com.android.server.am.ActivityManagerService.-$$Nest$mdoDump(unavailable:0)
at com.android.server.am.ActivityManagerService$1.dumpNormal(ActivityManagerService.java:895)
at com.android.server.utils.PriorityDump.dump(PriorityDump.java:178)
at com.android.server.am.ActivityManagerService.dump(ActivityManagerService.java:11070)
at android.os.Binder.doDump(Binder.java:1173)
at android.os.Binder.dump(Binder.java:1163)
at android.os.Binder.onTransact(Binder.java:1029)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:6017)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2992)
at android.os.Binder.execTransactInternal(Binder.java:1512)
at android.os.Binder.execTransact(Binder.java:1451)
Test: OEM monkey test
Bug: 358274041
Change-Id: Id39493d1d24ced3702d51ed6bb66085556afbf7c
1 file changed