Deliver internal server errors to the client
Due to a binder limitation (b/150808347), any unexpected exception thrown by a binder service while processing an RPC call, will be silently discarded and the client will get back a default-initialized result parcelable (i.e. in most cases, won't know that anything wrong happened). We work around this issue by throwing a ServiceSpecificException, which does get delivered, having a special code to designate an internal error. Errors resulting from a HAL malfunctions will result in a HAL reboot, which leads to recovery. Bug: 154089179 Test: Manual verification of basic error recovery scenarios by injecting HAL error codes and crashes. Change-Id: Ib5dbe08a362e545501c04204bebad5ab95f5d632
Loading
Please register or sign in to comment