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
Loading
Please register or sign in to comment