tree 0c9f1b6cffa2739ddc7ba71ecd164c64ea2539ec
parent 1b6c85b96f5cccae94d8bad6ea727accacfb7a0f
author Dmitri Plotnikov <dplotnikov@google.com> 1263518520 -0800
committer Dmitri Plotnikov <dplotnikov@google.com> 1263518520 -0800

Solving deadlock in ContactProvider2

These two threads are deadlocked.

There are two locks involved: database lock (marked with D below and
the object lock on ContactsDatabaseHelper marked with H)

"Binder Thread #2" prio=5 tid=13 MONITOR
  | group="main" sCount=1 dsCount=0 s=N obj=0x44bee478 self=0x1205f8
  | sysTid=1439 nice=0 sched=0/0 cgrp=default handle=1201736
H at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:~149)
  at com.android.providers.contacts.ContactsDatabaseHelper.getMimeTypeId(ContactsDatabaseHelper.java:1512)
  at com.android.providers.contacts.ContactsDatabaseHelper.updateAllVisible(ContactsDatabaseHelper.java:1554)
  at com.android.providers.contacts.ContactsProvider2.beforeTransactionCommit(ContactsProvider2.java:1989)
  at com.android.providers.contacts.SQLiteContentProvider.onCommit(SQLiteContentProvider.java:216)
  at android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:494)
D at com.android.providers.contacts.SQLiteContentProvider.insert(SQLiteContentProvider.java:96)
  at com.android.providers.contacts.ContactsProvider2.insert(ContactsProvider2.java:1941)
  at android.content.ContentProvider$Transport.insert(ContentProvider.java:150)
  at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:140)
  at android.os.Binder.execTransact(Binder.java:287)
  at dalvik.system.NativeStart.run(Native Method)

"Binder Thread #1" prio=5 tid=11 WAIT
  | group="main" sCount=1 dsCount=0 s=N obj=0x44bea248 self=0x125480
  | sysTid=1438 nice=0 sched=0/0 cgrp=default handle=1145184
  at java.lang.Object.wait(Native Method)
  - waiting on <0x5319d0> (a java.lang.VMThread)
  at java.lang.Thread.parkFor(Thread.java:1535)
  at java.lang.LangAccessImpl.parkFor(LangAccessImpl.java:48)
  at sun.misc.Unsafe.park(Unsafe.java:317)
  at java.util.concurrent.locks.LockSupport.park(LockSupport.java:131)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:790)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:823)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1153)
  at java.util.concurrent.locks.ReentrantLock$FairSync.lock(ReentrantLock.java:200)
  at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:261)
D at android.database.sqlite.SQLiteDatabase.lock(SQLiteDatabase.java:305)
  at android.database.sqlite.SQLiteStatement.simpleQueryForLong(SQLiteStatement.java:116)
H at com.android.providers.contacts.ContactsDatabaseHelper.getCachedId(ContactsDatabaseHelper.java:1478)
  at com.android.providers.contacts.ContactsDatabaseHelper.getMimeTypeId(ContactsDatabaseHelper.java:1513)
  at com.android.providers.contacts.ContactsProvider2.query(ContactsProvider2.java:3765)
  at android.content.ContentProvider$Transport.bulkQuery(ContentProvider.java:117)
  at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:98)
  at android.os.Binder.execTransact(Binder.java:287)
  at dalvik.system.NativeStart.run(Native Method)

Removing synchronization from the getCachedId method is benign. Worst case
some value would be read from the database twice - no biggie.

Bug: 2370192
Change-Id: Ia6606d5bf617a8d52daaa1e63f57aeeba6dd0437
