Don't use transport binder with the lock held
There was a deadlock around the transport lock. We registered transports with the transport lock held, this kicked-off transport onCreate() synchronously, which called TransportManager updateTransportAttributes(), which tried to acquire mentioned lock but couldn't. This CL removes the lock for any call to the transport or operation that triggers a call to the transport (it was TransportClient.connect() or its variants). Test: Load GMSCore before fix, boot, register transports, check no ANR Test: m -j RunFrameworksServicesRoboTests Test: adb shell bmgr transport -c <transport>, being registered & not Bug: 72147303 Change-Id: I72ca145d7fb73c0ef29c4aa1b620fea4969481db
Loading
Please register or sign in to comment