diff options
| author | 2022-12-23 02:14:45 +0000 | |
|---|---|---|
| committer | 2022-12-23 02:25:31 +0000 | |
| commit | a28af297d370fa3bcea14e0b6883343433a35d9c (patch) | |
| tree | e765b1551a291871119db4261fc1fd4516d14a23 /libs/androidfw/ApkParsing.cpp | |
| parent | 81b2644ede5c807a98f76698cda04b419933d657 (diff) | |
Fix deadlock by not acquiring lock when reporting proximity
There is a deadlock situation from AttentionManagerService acquiring
lock before callings back to its clients with the proximity update. This
can cause a deadlock because the clients, while holding their own locks,
can call AttentionManagerService again.
Thread 1:
  Acquires attention lock -> AttentionManager Service reports proximityUpdate to VoiceInteraction -> tries to acquire voice lock
Thread 2:
  Acquires voice lock -> VoiceService tries to cancel proximity updates
  -> tries to acquire attention lock
The deadlock can be fixed by removing the acquiring attention lock step
before reporting proximityUpdates to the clients.
Bug: 261143716
Test: atest CtsAttentionServiceDeviceTestCases
Change-Id: I9f7d520cbcfd57032a9476853acad025fd7a6b95
Diffstat (limited to 'libs/androidfw/ApkParsing.cpp')
0 files changed, 0 insertions, 0 deletions