Prevent IPCThreadState::joinThreadPool from spinning on unexpected error
Adds logging to help determine what is happening to the /dev/binder
fd and dump the process state when it happens.
bug: 8912673
Change-Id: I2aa0c66fc499e91e0bf9ee4ae20404bec35adc82
diff --git a/libs/binder/IPCThreadState.cpp b/libs/binder/IPCThreadState.cpp
index 6e83faa..2ffa927 100644
--- a/libs/binder/IPCThreadState.cpp
+++ b/libs/binder/IPCThreadState.cpp
@@ -466,6 +466,10 @@
result = executeCommand(cmd);
+ } else if (result != TIMED_OUT && result != -ECONNREFUSED && result != -EBADF) {
+ ALOGE("talkWithDriver(fd=%d) returned unexpected error %d, aborting",
+ mProcess->mDriverFD, result);
+ abort();
}
// After executing the command, ensure that the thread is returned to the