I am getting binder errors, shown below, on my beagle board? How to find out which process is causing these error?
binder: send failed reply for transaction 4800, target dead
binder: 1112:1750 transaction failed 29189, size 1528-4
binder: send failed reply for transaction 6233, target dead
binder: 1112:1112 transaction failed 29189, size 1332-4
binder: send failed reply for transaction 4792, target dead
binder: 1112:1638 transaction failed 29189, size 1332-4
binder: send failed reply for transaction 6232, target dead
The Binder transaction buffer has a limited fixed size, currently 1Mb, which is shared by all transactions in progress for the process. So if each message is over 200 kb, Then 5 or less running transactions will result in limit to exceed and throw TransactionTooLargeException .
If the arguments or the return value are too large to fit in the transaction buffer, then the call will fail. TransactionTooLargeException is thrown as a heuristic when a transaction is large, and it fails, since these are the transactions which are most likely to overfill the transaction buffer.
Binder is an Android-specific interprocess communication mechanism, and remote method invocation system. That is, one Android process can call a routine in another Android process, using binder to indentify the method to invoke and pass the arguments between processes.
It seems to me that you can find an answer in common/drivers/staging/android/binder.c So I think in your case the log means:
printk(KERN_INFO "binder: %d:%d transaction failed %d, size"
"%zd-%zd\n",
proc->pid, thread->pid, return_error,
tr->data_size, tr->offsets_size);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With