No description
Find a file
Steven Thomas 4492a30e14 Guard against racy ComposerClient reconnection
The hardware composer service has a rule that only one client can be
connected at a time. The surface flinger process, when transitioning
composer ownership from surface flinger to vr flinger, will destroy the
current client on one thread and create a new client on another
thread. Although surface flinger ensures that these events happen in the
expected sequence (delete then create), the requests sometimes land in
the hardware composer service in inverted order, causing the creation
request to fail with an error.

Instead of failing with an error, block for a brief period (1 second)
until the existing client is removed, then proceed to initialize the new
client. This gives us enough time to ensure an inverted
creation/destruction order doesn't cause client creation to fail, while
avoiding a deadlock if the existing client is never destroyed.

Bug: 62925812

Test: - Transitioned to/from vr flinger hundreds of times, and confirmed
I no longer see sporadic composer client creation failure due to an
already existing client.

- Ran the vts graphics composer tests and confirmed they all pass.

Change-Id: I40be1fb0cb3d42ddb5a9fc159188886e9f5b6267
2017-07-31 18:38:01 -07:00
audio Audio VTS: Change test utility from dyn to static lib 2017-07-20 10:01:44 -07:00
automotive Rename the enums that are supposed to match OBD2 values to have an Obd2 prefix 2017-07-25 17:20:53 -07:00
biometrics Update makefiles. (2/2) 2017-05-22 17:15:20 +00:00
bluetooth Merge "Fixed the HCI ACL Header definitions for PB and BC Flags" into oc-dev am: ad6b1eb846 2017-07-22 16:00:51 +00:00
boot Merge "Update makefiles." am: 9119d4ccd1 am: 242b2288d7 2017-05-20 00:19:40 +00:00
broadcastradio Refine broadcastradio HAL comments. 2017-07-29 17:31:56 -07:00
camera Merge "Camera: Update stream consumer usage flag" into oc-dr1-dev 2017-07-31 16:21:44 +00:00
cas Build android.hardware.cas@1.0-service with BOARD_VNDK_VERSION 2017-07-10 18:25:34 +09:00
configstore Remove TODO comment for configstore threadpool size 2017-07-14 10:53:26 +09:00
contexthub Merge "contexthub: Handle service death" into oc-dev am: bbcf199e93 2017-06-06 17:03:39 +00:00
drm Check for nullptr IMemory. 2017-07-18 10:45:16 -07:00
dumpstate Update hash and VTS for the 2nd FD of dumpstate 2017-06-20 09:58:13 -07:00
gatekeeper Update makefiles. (2/2) 2017-05-22 17:15:20 +00:00
gnss Clear notification count to handle different flows 2017-06-20 11:33:09 +08:00
graphics Guard against racy ComposerClient reconnection 2017-07-31 18:38:01 -07:00
health Compile health hal with the VNDK. 2017-07-10 17:38:26 -07:00
ir Merge "Fix consumerir test bugs" into oc-dev 2017-06-29 02:21:17 +00:00
keymaster Test import of a EC P-521 key. 2017-06-22 14:29:19 -06:00
light Update makefiles. (2/2) 2017-05-22 17:15:20 +00:00
media improve timeout handling 2017-07-18 05:34:56 -07:00
memtrack Update makefiles. (2/2) 2017-05-22 17:15:20 +00:00
nfc Merge "Nfc: Vts: modify WriteInvalidAndThenValidCommand" into oc-dev 2017-06-19 16:39:05 +00:00
oemlock OemLock functional VTS test. 2017-07-20 12:46:18 +01:00
power Add powerHintAsync functionality 2017-07-13 15:01:31 -07:00
radio Merge "Add corresponding error code to fix vts test" into oc-mr1-dev 2017-07-31 17:40:52 +00:00
renderscript Merge "Added protections to RenderScript VTS class teardown." am: 80002c1ff3 am: 06f79dbd05 2017-07-14 22:54:58 +00:00
sensors Merge "Relax accelerometer events norm check" into oc-dr1-dev am: f2cb94e011 2017-07-07 00:19:41 +00:00
soundtrigger Add OWNERS for audio-related HAL default implementations 2017-07-14 17:14:53 +00:00
tests resolve merge conflicts of 8d92561 to oc-mr1-dev 2017-07-25 21:14:07 -07:00
tetheroffload Update makefiles. 2017-05-18 16:14:16 -07:00
thermal Update makefiles. (2/2) am: 76cfb84140 2017-05-22 17:29:04 +00:00
tv Update makefiles. (2/2) 2017-05-22 17:15:20 +00:00
usb Merge "Update internal makefiles." 2017-06-06 04:43:13 +00:00
vibrator Update makefiles (vibrator open). 2017-06-16 19:52:49 -07:00
vr Update makefiles. (2/2) 2017-05-22 17:15:20 +00:00
weaver Weaver: functional VTS tests 2017-07-20 15:36:11 +01:00
wifi Merge "Wifi Offload HAL: Improve VTS tests for scanConfig" into oc-dr1-dev 2017-07-31 19:59:30 +00:00
.clang-format .clang-format: 100 lines 2017-05-02 16:45:27 -07:00
Android.bp Add hidl_default and make modules use hidl_default. 2017-03-08 16:22:00 -08:00
CleanSpec.mk Build automotive hals with VNDK. 2017-07-12 16:25:27 -07:00
compatibility_matrix.26.xml Configstore HAL is down-revisioned to 1.0 2017-07-10 20:07:33 +09:00
compatibility_matrix.current.xml Configstore HAL is down-revisioned to 1.0 2017-07-10 20:07:33 +09:00
compatibility_matrix.legacy.xml Configstore HAL is down-revisioned to 1.0 2017-07-10 20:07:33 +09:00
current.txt Refine broadcastradio HAL comments. 2017-07-29 17:31:56 -07:00
MODULE_LICENSE_APACHE2 Apache2 module license. 2016-08-30 11:28:36 -07:00
NOTICE Apache2 module license. 2016-08-30 11:28:36 -07:00
OWNERS Add OWNERS in hardware/interfaces 2017-06-12 13:20:12 -07:00
PREUPLOAD.cfg Enable the clang-format pre-submit hook 2017-03-30 13:26:49 -07:00
update-base-files.sh Add annotations to create gnss-base.h 2017-01-23 08:41:15 -08:00
update-makefiles.sh Update makefiles from anywhere. 2017-05-11 15:42:32 -07:00