这是一个可以在一天内通过稳定性测试重现的SWT问题,概率为30%。
根据SWT trace .txt和log,在软件看门狗发生时间,一些线程在不同代码中被随机阻塞和阻塞,但大约9秒后,被阻塞的线程进入空闲状态。我们怀疑软件看门狗是由于整个手机的性能不好造成的。
当这个SWT发生时触发 memory dumps。已检查内存信息,空闲内存低,正常缓存内存。内核日志中有许多用于低优先级进程的LMK日志。
从logcat日志中,这个SWT被线程“android.fg”,“android.ui”和“android.display”。
根据跟踪日志,线程“android.fg”和“android.ui " was waiting to lock " 0x0ecf3bbc " hold by thread " ActivityManager ",这是等待锁定" 0x0f3257a8 " hold by thread "android.bg”调用非重函数Process.readProcFile()。大约9秒后,在“WATCHDOG KILLING”日志中,所有被阻塞的线程都在等待新任务准备就绪。
线程的锁等待序列
Thread "main"-> "ActivityManager"(lock:0x0ecf3bbc)->"android.bg"(lock:0x0f3257a8)
"android.ui"-> "ActivityManager"(lock:0x0ecf3bbc)-> "android.bg"(lock:0x0f3257a8)
日志分析ÿ