The Contacts Storage application appears to hang and blocks other threads. I don't receive text messages or various other notifications when the process is hung.
When the process hangs, I can open the dialer but am unable to view details on contacts. I'm also unable to switch phonebooks.
This has been driving me nuts and I've tried everything I can think of:
Multiple full wipes (including SD card and internal storage)
Different ROMs (MeanBean, Stock w/ Goodies, SuperJelly, etc)
Flashed 3.15.651.16 RUU
Tried updating the Contacts Storage application with this HTC patch: "Android.process.acore force close fix for all devices running Android 4.1 (Jelly Bean)"
I'm not syncing anything else
I did run logcat and see the problem - however, I have no idea why it's occurring.
Looks like I have an SQLite query hanging. I've tried deleting the referenced contact id - it just throws the same error with another id.
W/SQLiteConnectionPool( 9277): The connection pool for database '/data/user/0/com.android.providers.contacts/databases/contacts2.db' has been unable to grant a connection to thread 739 (ContactsProviderWorker) with flags 0x2 for 60.004 seconds. W/SQLiteConnectionPool( 9277): Connections: 1 active, 0 idle, 0 available. W/SQLiteConnectionPool( 9277): W/SQLiteConnectionPool( 9277): Requests in progress: W/SQLiteConnectionPool( 9277): prepare started 70435ms ago - running, sql="DELETE FROM visible_contacts WHERE _id=40 AND ( (SELECT MAX((SELECT (CASE WHEN (CASE WHEN raw_contacts.account_id=(SELECT _id FROM accounts WHERE account_name IS NULL AND account_type IS NULL AND data_set IS NULL) THEN 1 WHEN COUNT(groups._id)=0 THEN ungrouped_visible ELSE MAX(group_visible)END)=1 THEN 1 ELSE 0 END) FROM raw_contacts JOIN accounts ON (raw_contacts.account_id=accounts._id)LEFT OUTER JOIN settings ON (accounts.account_name=settings.account_name AND accounts.account_type=settings.account_type AND ((accounts.data_set IS NULL AND settings.data_set IS NULL) OR (accounts.data_set=settings.data_set))) LEFT OUTER JOIN data ON (data.mimetype_id=? AND data.raw_contact_id = raw_contacts._id) LEFT OUTER JOIN groups ON (groups._id = data.data1) WHERE raw_contacts._id=outer_raw_contacts._id)) FROM raw_contacts AS outer_raw_contacts WHERE contact_id= ? GROUP BY contact_id) <> 1 )"
This does not occur on ICS.
I'm s-off, baseband 22.214.171.1249, and hboot 2.09