Avoid deadlock when installing app
Symptom:
System crash is occurred by deadlock
Root cause:
ActivityManagerService's APIs usually hold a lock of itself instance.
In this case, four threads tried to take the same lock and it caused
deadlock.
Following three objects are in a three-cornered deadlocked.
- ActivityManagerService's instance
- PackageInstallerSession.mLock
- PackageManagerService.mPackages
Solution:
Call checkUidPermission before taking a lock of ActivityManagerService's
instance.
Fixes: 32425801
Test: manual
Author: Kazuki Nakayama <kazuki.x.nakayama@sonymobile.com>
Change-Id: I71ce57b1b8f3e0e9ba64b94a7b1f210b702efb6a
2 files changed