adb bugreport > bugreport.txt It contains Binder transaction log. 2009/8/10 pavan savoy <[email protected]>
> Yes - does seem a binder error. As far as I remember dmesg didn't show me > anything different from the one which came on the logcat !! > < I suppose it was the kernel message which came -- I ran it on console and > not on adb> > > It does always happen only the 1st time !! - When I suppose the Settings > app is trying to read something from /data ? userdata or cache which has not > yet been created ? > Hence causing an exception -- and android restart !! > > Anyways How do I generate a bugreport ? > > regards, > Pavan > > > On Sat, Aug 8, 2009 at 12:46 AM, 黃強 <[email protected]> wrote: > >> It's not Binder error? If it's dbus issue, why did the log show >> Binder transaction failed? >> Pavan, do you have bugreport or last_kmsg? Is it related to Binder >> failure? >> >> 2009/8/8 Nick Pelly <[email protected]> >> >> >>> JK just pointed out to me that this might be a DBUS failure that we >>> fixed a while back. >>> >>> Can you make sure you have this patch in your build? >>> >>> >>> commit 4a364130fb072bf44367e537f8d24e7e00c6ca69 >>> Author: Nick Pelly <[email protected]> >>> Date: Thu Jun 18 15:05:34 2009 -0700 >>> >>> Fix runtime restarts due to sending the wrong flags to dbus. >>> >>> In eventLoopMain we were correctly translating from unix events to >>> dbus flags, >>> but a coding typo then gave the unix events to dbus. Fix this typo. >>> >>> Also noticed that we were passing raw dbus flags to poll() in another >>> area. >>> This did not cause any immediate problem, since POLLIN | POLLPRI is >>> harmless >>> and we do not usually need POLLOUT. But fixed anyway. >>> >>> diff --git a/core/jni/android_server_BluetoothEventLoop.cpp >>> b/core/jni/android_server_BluetoothEventLoop.cpp >>> index ff8f28a..ad24136 100644 >>> --- a/core/jni/android_server_BluetoothEventLoop.cpp >>> +++ b/core/jni/android_server_BluetoothEventLoop.cpp >>> @@ -162,6 +162,19 @@ static const DBusObjectPathVTable agent_vtable = { >>> NULL, agent_event_filter, NULL, NULL, NULL, NULL >>> }; >>> >>> +static unsigned int unix_events_to_dbus_flags(short events) { >>> + return (events & DBUS_WATCH_READABLE ? POLLIN : 0) | >>> + (events & DBUS_WATCH_WRITABLE ? POLLOUT : 0) | >>> + (events & DBUS_WATCH_ERROR ? POLLERR : 0) | >>> + (events & DBUS_WATCH_HANGUP ? POLLHUP : 0); >>> +} >>> + >>> +static short dbus_flags_to_unix_events(unsigned int flags) { >>> + return (flags & POLLIN ? DBUS_WATCH_READABLE : 0) | >>> + (flags & POLLOUT ? DBUS_WATCH_WRITABLE : 0) | >>> + (flags & POLLERR ? DBUS_WATCH_ERROR : 0) | >>> + (flags & POLLHUP ? DBUS_WATCH_HANGUP : 0); >>> +} >>> >>> static jboolean setUpEventLoop(native_data_t *nat) { >>> LOGV(__FUNCTION__); >>> @@ -385,8 +398,7 @@ static void handleWatchAdd(native_data_t *nat) { >>> read(nat->controlFdR, &newFD, sizeof(int)); >>> read(nat->controlFdR, &flags, sizeof(unsigned int)); >>> read(nat->controlFdR, &watch, sizeof(DBusWatch *)); >>> - int events = (flags & DBUS_WATCH_READABLE ? POLLIN : 0) >>> - | (flags & DBUS_WATCH_WRITABLE ? POLLOUT : 0); >>> + short events = dbus_flags_to_unix_events(flags); >>> >>> for (int y = 0; y<nat->pollMemberCount; y++) { >>> if ((nat->pollData[y].fd == newFD) && >>> @@ -430,8 +442,7 @@ static void handleWatchRemove(native_data_t *nat) { >>> >>> read(nat->controlFdR, &removeFD, sizeof(int)); >>> read(nat->controlFdR, &flags, sizeof(unsigned int)); >>> - int events = (flags & DBUS_WATCH_READABLE ? POLLIN : 0) >>> - | (flags & DBUS_WATCH_WRITABLE ? POLLOUT : 0); >>> + short events = dbus_flags_to_unix_events(flags); >>> >>> for (int y = 0; y < nat->pollMemberCount; y++) { >>> if ((nat->pollData[y].fd == removeFD) && >>> @@ -495,13 +506,12 @@ static void *eventLoopMain(void *ptr) { >>> } >>> } >>> } else { >>> - int event = nat->pollData[i].revents; >>> - int flags = (event & POLLIN ? DBUS_WATCH_READABLE : 0) >>> | >>> - (event & POLLOUT ? DBUS_WATCH_WRITABLE : >>> 0); >>> - dbus_watch_handle(nat->watchData[i], event); >>> - nat->pollData[i].revents = 0; >>> - // can only do one - it may have caused a 'remove' >>> - break; >>> + short events = nat->pollData[i].revents; >>> + unsigned int flags = unix_events_to_dbus_flags(events); >>> + dbus_watch_handle(nat->watchData[i], flags); >>> + nat->pollData[i].revents = 0; >>> + // can only do one - it may have caused a 'remove' >>> + break; >>> } >>> } >>> while (dbus_connection_dispatch(nat->conn) == >>> >>> >>> >>> On Fri, Aug 7, 2009 at 9:41 AM, Nick Pelly<[email protected]> wrote: >>> > Hi, >>> > >>> > Sorry for the late reply, >>> > >>> > This is a really strange failure log. We have never seen this before. >>> > Sorry I know that is not very useful :( >>> > >>> > Nick >>> > >>> > On Wed, Jul 29, 2009 at 7:01 AM, pavan savoy<[email protected]> >>> wrote: >>> >> Hi, >>> >> >>> >> On the donut branch - a2dp connection the first time, when userdata >>> and >>> >> cache is empty always seem to fail - resulting in restart of whole >>> android. >>> >> Is android trying to read in some-parameter from userdata/cache which >>> hasn't >>> >> been created yet ? >>> >> >>> >> find below the logs, [also attached the complete log file] >>> >> >>> >> I/BT HSHFP( 1083): Successful RFCOMM socket connect. >>> >> D/BT HSHFP( 1083): RFCOMM connection attempt took 1775 ms >>> >> D/BT HSHFP( 1083): Rfcomm connected >>> >> D/BT HSHFP( 1083): Headset state 1 -> 2, result = 1 >>> >> D/BluetoothA2dpService( 931): connectSink(00:13:17:72:30:B9) >>> >> I/Bluetooth AT recv( 1083): AT+BRSF=27 >>> >> I/Bluetooth AT sent( 1083): +BRSF: 99 >>> >> I/Bluetooth AT sent( 1083): OK >>> >> D/BluetoothA2dpService( 931): new bluez sink: 00:13:17:72:30:B9 >>> >> (/org/bluez/audio/device0) >>> >> binder: release 931:936 transaction 4665 in, still active >>> >> binder: send failed reply for transaction 4665 to 1083:1083 >>> >> binder: release 931:1099 transaction 4664 in, still active >>> >> binder: send failed reply for transaction 4664 to 1153:1153 >>> >> E/BluetoothDevice( 1083): >>> >> E/BluetoothDevice( 1083): android.os.DeadObjectException >>> >> E/BluetoothDevice( 1083): \0x09at >>> android.os.BinderProxy.transact(Native >>> >> Method) >>> >> E/BluetoothDevice( 1083): \0x09at >>> >> >>> android.bluetooth.IBluetoothDevice$Stub$Proxy.getRemoteName(IBluetoothDevice.java:991) >>> >> binder: 1083:1236 transaction failed 29189, size104-4 >>> >> ....... >>> >> E/BluetoothDevice( 1083): \0x09at >>> >> >>> com.android.phone.BluetoothHandsfree.configAudioParameters(BluetoothHandsfree.java:270) >>> >> E/BluetoothDevice( 1083): \0x09at >>> >> >>> com.android.phone.BluetoothHandsfree.connectHeadset(BluetoothHandsfree.binder: >>> >> 1083:1083 transaction failed 29189, size120-0 >>> >> java:232) >>> >> E/BluetoothDevice( 1083): \0x09at >>> >> >>> com.android.phone.BluetoothHandsfree.connectHeadset(BluetoothHandsfree.binder: >>> >> 1083:1083 transaction failed 29189, size120-0 >>> >> java:232) >>> >> E/BluetoothDevice( 1083): \0x09at >>> >> >>> com.android.phone.BluetoothHeadsetService$6.handleMessage(BluetoothHeadsetService.java:466) >>> >> E/BluetoothDevice( 1083): \0x09at >>> >> android.os.Handler.dispatchMessage(Handler.java:99) >>> >> ...... >>> >> E/BluetoothDevice( 1083): \0x09at >>> >> >>> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782) >>> >> E/BluetoothDevice( 1083): \0x09at >>> >> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540) >>> >> E/BluetoothDevice( 1083): \0x09at >>> dalvik.system.NativeStart.main(Native >>> >> Method) >>> >> I/ActivityThread( 1204): Removing dead content provider: settings >>> >> I/ActivityThread( 1186): Removing dead content provider: settings >>> >> I/ActivityThread( 1177): Removing dead content provider: settings >>> >> I/ActivityThread( 1107): Removing dead content provider: settingsinit: >>> >> untracked pid 1120 exited >>> >> >>> >> I/ActivityThread( 1153): Removing dead content provider: settings >>> >> I/ServiceManager( 871): service 'battery' died >>> >> I/ServiceManager( 871): service 'hardware' died >>> >> I/ServiceManager( 871): service 'activity.senders' died >>> >> I/ServiceManager( 871): service 'meminfo' died >>> >> I/ServiceManager( 871): service 'cpuinfo' died >>> >> I/ServiceManager( 871): service 'isms' died >>> >> I/ServiceManager( 871): service 'simphonebook' died >>> >> I/ServiceManager( 871): service 'iphonesubinfo' died >>> >> I/ServiceManager( 871): service 'phone' died >>> >> D/AndroidRuntime( 1239): >>> >> D/AndroidRuntime( 1239): >>>>>>>>>>>>>> AndroidRuntime START >>> <<<<<<<<<<<<<< >>> >> >>> >> >>> >> -- >>> >> --Pavan Savoy >>> >> >>> >> >>> >> >> >>> >> >>> > >>> >>> >>> >> >> >> > > > -- > --Pavan Savoy > > > > > --~--~---------~--~----~------------~-------~--~----~ unsubscribe: [email protected] website: http://groups.google.com/group/android-porting -~----------~----~----~----~------~----~------~--~---
