bgdexopt: fix deadlock between dump and dexopt thread
- Calling JobScheduler API under mLock leads into accessing PMS lock which is held when dump is called from PMS. : This leads into deadlock. - Call JobScheduler outside mLock as that is safe without mLock. Bug: 213945104 Test: run bgdexopt CTS which runs dump and dexopt thread. Change-Id: I3aabd18e6ec1ec7e158eb008b90dee90b8621c60
This commit is contained in:
@@ -896,10 +896,10 @@ public final class BackgroundDexOptService {
|
||||
synchronized (mLock) {
|
||||
if (!mFinishedPostBootUpdate) {
|
||||
mFinishedPostBootUpdate = true;
|
||||
JobScheduler js = mInjector.getJobScheduler();
|
||||
js.cancel(JOB_POST_BOOT_UPDATE);
|
||||
}
|
||||
}
|
||||
// Safe to do this outside lock.
|
||||
mInjector.getJobScheduler().cancel(JOB_POST_BOOT_UPDATE);
|
||||
}
|
||||
|
||||
private void notifyPinService(ArraySet<String> updatedPackages) {
|
||||
|
||||
Reference in New Issue
Block a user