OSDN Git Service

Prevent IPCThreadState::joinThreadPool from spinning on unexpected error
authorJeff Tinker <jtinker@google.com>
Tue, 11 Jun 2013 18:30:21 +0000 (11:30 -0700)
committerThe Android Automerger <android-build@android.com>
Wed, 12 Jun 2013 21:29:31 +0000 (14:29 -0700)
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

libs/binder/IPCThreadState.cpp

index 6e83faa..2ffa927 100644 (file)
@@ -466,6 +466,10 @@ void IPCThreadState::joinThreadPool(bool isMain)
 
 
             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