I work with one of Android vendors, and recently faced a confusing 
situation.

One of the volumes' state has changed, as a result package parser is 
parsing packages in that volume and updating permissions etc.
During this operation, packageparser has held lock over mPackages(arraymap 
consisting the list of packages installed on device).

In the meanwhile, a change in wifi state happens, wifi in turn requests 
Activitymanagerservice to broadcast intent of wifi change.
AMS performs broadcastIntent as a synchronised operation over itself, thus 
taking a lock on itself.

Whilie executing this method, it needs to query the list of intent 
receivers, for which it is blocked on access to mPackages.

While packageparser continues to parse for ~ 2min, framework watchdog times 
out, and restarts framework.

This situation doesn't reproduce a lot often, but it can certainly happen 
one odd time.

Please suggest what could be a good solution to handle this situation!

-- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/android-developers/d8d8f866-85c4-4e94-895d-5a8dc48d9d2f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to