android - Watchdog timeout killing ActivityManager -


we seeing random reboots while capturing bugreport. traces,binder holding lock , performing file operations,while activity manager waits acquire same lock on release. reason binder fails complete operation in stipulated time of 60 secs(watchdog timeout period) after watchdog kick in , kill activity manager resulting in reboot. not sure why file operations failing. idea??

****logcat**** 28429 28736 w watchdog: *** watchdog killing system process: blocked in monitor com.android.server.am.activitymanagerservice on foreground thread (android.fg), blocked in handler on activitymanager (activitymanager) 28429 28736 w watchdog: foreground thread stack trace: 28429 28736 w watchdog: @ com.android.server.am.activitymanagerservice.monitor(activitymanagerservice.java :18792) 28429 28736 w watchdog:     @ com.android.server.watchdog$handlerchecker.run(watchdog.java:173) 28429 28736 w watchdog:     @ android.os.handler.handlecallback(handler.java:739) 28429 28736 w watchdog:     @ android.os.handler.dispatchmessage(handler.java:95) 28429 28736 w watchdog:     @ android.os.looper.loop(looper.java:135) 28429 28736 w watchdog:     @ android.os.handlerthread.run(handlerthread.java:61) 28429 28736 w watchdog:     @ com.android.server.servicethread.run(servicethread.java:46) 28429 28736 w watchdog: activitymanager stack trace: 28429 28736 w watchdog:     @ com.android.server.am.batterystatsservice.noteprocessstate(batterystatsservice.java:159) 28429 28736 w watchdog:     @ com.android.server.am.activitymanagerservice.setprocesstrackerstatelocked(activitymanagerservice.java:18077) 28429 28736 w watchdog:     @ com.android.server.am.activitymanagerservice.updateoomadjlocked(activitymanagerservice.java:18503) 28429 28736 w watchdog:     @ com.android.server.am.broadcastqueue.processcurbroadcastlocked(broadcastqueue.java:234) 28429 28736 w watchdog:     @ com.android.server.am.broadcastqueue.processnextbroadcast(broadcastqueue.java:893) 28429 28736 w watchdog:     @ com.android.server.am.broadcastqueue$broadcasthandler.handlemessage(broadcastqueue.java:149) 28429 28736 w watchdog:     @ android.os.handler.dispatchmessage(handler.java:102) 28429 28736 w watchdog:     @ android.os.looper.loop(looper.java:135) 28429 28736 w watchdog:     @ android.os.handlerthread.run(handlerthread.java:61) 28429 28736 w watchdog:     @ com.android.server.servicethread.run(servicethread.java:46) 28429 28736 w watchdog: *** goodbye!  ****traces**** "activitymanager" prio=5 tid=14 blocked  | group="main" scount=1 dscount=0 obj=0x12d49d60 self=0xb4835000  | systid=28447 nice=-2 cgrp=default sched=0/0 handle=0xb48ab400  | state=s schedstat=( 122941894282 79694427844 199108 ) utm=7937 stm=4357 core=0 hz=100  | stack=0xa4dd4000-0xa4dd6000 stacksize=1036kb  | held mutexes=  @ com.android.server.am.batterystatsservice.noteprocessstate(batterystatsservice.java:159)  - waiting lock <0x1630e0b8> (a com.android.internal.os.batterystatsimpl) held thread 63  @ com.android.server.am.activitymanagerservice.setprocesstrackerstatelocked(activitymanagerservice.java:18077)  @ com.android.server.am.activitymanagerservice.updateoomadjlocked(activitymanagerservice.java:18503)  @ com.android.server.am.broadcastqueue.processcurbroadcastlocked(broadcastqueue.java:234)  @ com.android.server.am.broadcastqueue.processnextbroadcast(broadcastqueue.java:893)  - locked <0x1d97ee91> (a com.android.server.am.activitymanagerservice)  @ com.android.server.am.broadcastqueue$broadcasthandler.handlemessage(broadcastqueue.java:149)  @ android.os.handler.dispatchmessage(handler.java:102)  @ android.os.looper.loop(looper.java:135)  @ android.os.handlerthread.run(handlerthread.java:61)  @ com.android.server.servicethread.run(servicethread.java:46)  "binder_7" prio=5 tid=63 native`enter code here`  | group="main" scount=1 dscount=0 obj=0x13057400 self=0xa3867000  | systid=28848 nice=-20 cgrp=default sched=0/0 handle=0xb0052280  | state=s schedstat=( 99308593770 7649047774 35537 ) utm=9244 stm=686 core=1 hz=100  | stack=0xa06db000-0xa06dd000 stacksize=1012kb  | held mutexes=  kernel: (couldn't read /proc/self/task/28848/stack)  native: #00 pc 000133c4  /system/lib/libc.so (syscall+28)  native: #01 pc 000a983f  /system/lib/libart.so (_zn3art17conditionvariable4waitepns_6threade+82)  native: #02 pc 001b187f  /system/lib/libart.so (_zn3art3jni12newstringutfep7_jnienvpkc+738)  native: #03 pc 00018849  /system/lib/libjavacore.so (???)  native: #04 pc 0001e66d  /system/lib/libjavacore.so (???)  native: #05 pc 0001e743  /system/lib/libjavacore.so (???)  native: #06 pc 00020b4f  /system/lib/libjavacore.so (???)  native: #07 pc 0027a9a3  /data/dalvik-cache/arm/system@framework@boot.oat (java_libcore_io_posix_writebytes__ljava_io_filedescriptor_2ljava_lang_object_2ii+142)  @ libcore.io.posix.writebytes(native method)  @ libcore.io.posix.write(posix.java:258)  @ libcore.io.blockguardos.write(blockguardos.java:313)  @ libcore.io.iobridge.write(iobridge.java:497)  @ java.io.fileoutputstream.write(fileoutputstream.java:186)  @ com.android.internal.util.fastprintwriter.flushbyteslocked(fastprintwriter.java:334)  @ com.android.internal.util.fastprintwriter.flushlocked(fastprintwriter.java:355)  @ com.android.internal.util.fastprintwriter.appendlocked(fastprintwriter.java:303)  @ com.android.internal.util.fastprintwriter.print(fastprintwriter.java:466)  - locked <@addr=0x130f2630> (a com.android.internal.util.fastprintwriter$dummywriter)  @ android.os.batterystats.printbitdescriptions(batterystats.java:3427)  @ android.os.batterystats$historyprinter.printnextitem(batterystats.java:3653)  @ android.os.batterystats.dumphistorylocked(batterystats.java:3907)  @ android.os.batterystats.dumpcheckinlocked(batterystats.java:4110)  @ com.android.server.am.batterystatsservice.dump(batterystatsservice.java:933)  - locked <0x1630e0b8> (a com.android.internal.os.batterystatsimpl)  @ android.os.binder.dump(binder.java:319)  @ android.os.binder.ontransact(binder.java:285)  @ com.android.internal.app.ibatterystats$stub.ontransact(ibatterystats.java:832)  @ android.os.binder.exectransact(binder.java:446) 

though old post, stumbled upon similar problem activity manager getting killed watchdog. however, in case problem turned out of low system memory lowmemorykiller getting invoked. full dumpstate not available, can provide suggestions below:

if able solve problem, please post view.

if expected bugreport huge or there network operation involved, can try increase "extra time" watchdog provides blocked thread finish.

https://android.googlesource.com/platform/frameworks/base/+/7e361d2/services/java/com/android/server/watchdog.java

@override public void run() { 

...

// give time make sure stack traces written.         // system's been hanging minute, second or 2 won't hurt much.         systemclock.sleep(2000); 

lastly, debug root cause, if attach debugger, watchdog won't kill activitymanager.

// kill process if debugger not attached.         if (debug.isdebuggerconnected()) {             slog.w(tag, "debugger connected: watchdog *not* killing system process");         }  

Comments

Popular posts from this blog

javascript - Thinglink image not visible until browser resize -

firebird - Error "invalid transaction handle (expecting explicit transaction start)" executing script from Delphi -

mongodb - How to keep track of users making Stripe Payments -