libbinder: RPC use DEAD_OBJECT over -ECANCELED
When we shutdown a connection with FdTrigger, we return -ECANCELED. However, the next call to that FD will return with -EPIPE (DEAD_OBJECT). It's not really important: if your call happens to get interrupted, you'll get -ECANCELED or if your call happened to be scheduled slightly later, you'd get DEAD_OBJECT. Actually, we don't care to distinguish between these two cases because existing clients of libbinder only have and consider DEAD_OBJECT now. Whether the server is shutting down right now, or you make the call a tiny bit later, we want to return the exact same error code in order to be consistent w/ the behavior of libbinder when it uses the binder driver. This was causing a flake in a later CL (fixing the 'Die' race), when rpcSend failing causes the server to shutdown. Bug: 200167417 Test: binderRpcTest 'Callbacks' case repeated 100s of times Change-Id: Id2977f05eb249691326955e6f2424d4e5e08b417
Loading
Please register or sign in to comment