libbinder: server sessions shut down independently
Before this CL, for a server, there is a single pipe which when hungup will end every session with that server. This, as it turned out in hindsight to be problematic, since we want to shutdown problematic sessions without interrupting other clients. Assuming we keep the pipe-based interrupt, there are essential two solutions to consider here (this CL is option B). a. instead of hanging up these pipes, write information to them, and then wake up all relevant threads which can figure out the right thing to do. - pro: only need to create one FD - con: very complicated because there may be multiple readers of the pipe, etc... - con: will mess with all clients b. have a separate pipe per session - pro: relatively simple logic - con: an extra FD per session So, for now, going with (b). Bug: 183140903 Test: binderRpcTest, run biner_rpc_fuzzer for 5 minutes (I checked locally, w/o the RpcServer check for isTriggered, this also detected that deadlock in less than 1 minute! :D) Change-Id: I9e290cd0a6df1d33435183fb16f508f38071ad62
Loading
Please register or sign in to comment