115c4722f8
Calls to `with_transaction(Immediate, ...)` act as an exclusive lock on the Keystore database, because the sleep-loop does not release the transaction. That gives the potential for deadlock if any of the code in the invoked callback takes some other lock without consideration for lock inversions. There isn't (yet) a smoking gun that definitively identifies a lock inversion, but this CL adds timeout behaviour just in case. Include a unit test that deadlocks without the code change, because of an explicit lock inversion between the immediate-mode database and a `KeyIdGuard` object (which acts like a `MutexGuard`). Bug: 319563050 Bug: 315165314 Flag: android.security.keystore2.database_loop_timeout Test: keystore2_test#database::tests::test_key_id_guard_immediate Change-Id: I34fa044ce8e3185a89084b84c6f9ac880944982c |
||
---|---|---|
.. | ||
flags.aconfig |