lock in system_server in the board with external adoptable storage
as below stack:
"Binder_4" prio=5 tid=60 Blocked
at com.android.server.pm.UserManagerService.exists(UserManagerSer
vice.java:411)
- waiting to lock <0x06858aff> (a android.util.ArrayMap) held by
thread 19
at com.android.server.pm.PackageManagerService.checkUidPermissio
n(PackageManagerService.java:3193)
at android.app.ActivityManager.checkComponentPermission(ActivityM
anager.java:2647)
at com.android.server.pm.UserManagerService.checkManageUsersPermi
ssion(UserManagerService.java:678)
at com.android.server.pm.UserManagerService.getUsers(UserManagerS
ervice.java:272)
at android.os.UserManager.getUsers(UserManager.java:966)
at com.android.server.MountService.resetIfReadyAndConnectedLocked
(MountService.java:800)
at com.android.server.MountService.forgetAllVolumes(MountService.
java:1806)
- locked <0x077010cc> (a java.lang.Object)
at android.os.storage.IMountService$Stub.onTransact(IMountService
.java:1859)
at android.os.Binder.execTransact(Binder.java:453)
"PackageManager" prio=5 tid=19 Blocked
at com.android.server.MountService.getVolumeList(MountService.jav
a:2708)
- waiting to lock <0x077010cc> (a java.lang.Object) held by threa
d 60
at android.os.storage.StorageManager.getVolumeList(StorageManager
.java:883)
at android.os.Environment$UserEnvironment.getExternalDirs(Environ
ment.java:83)
at android.os.Environment.isExternalStorageEmulated(Environment.j
ava:719)
at com.android.server.pm.PackageManagerService.isExternalMediaAva
ilable(PackagkageManagerService.java:9453)
at com.android.server.pm.PackageManagerService.startCleaningPacka
ges(PackageManagerService.java:9493)
- locked <0x06858aff> (a android.util.ArrayMap)
at com.android.server.pm.PackageManagerService$PackageHandler.doH
andleMessage(PackageManagerService.java:1331)
at com.android.server.pm.PackageManagerService$PackageHandler.han
dleMessage(PackageManagerService.java:1133)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
at com.android.server.ServiceThread.run(ServiceThread.java:46)
Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
void startCleaningPackages() {
// reader
+ if (!isExternalMediaAvailable()) {
+ return;
+ }
synchronized (mPackages) {
- if (!isExternalMediaAvailable()) {
- return;
- }
if (mSettings.mPackagesToBeCleaned.isEmpty()) {
return;
}