Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Binder transaction failure in Android

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   
like image 912
dibin_salher Avatar asked Dec 31 '11 04:12

dibin_salher


People also ask

What is Binder transaction?

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 .

What is the TransactionTooLarge exception?

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.

What is a binder in Android?

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.


1 Answers

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);
like image 160
Yury Avatar answered Sep 22 '22 06:09

Yury