1. 程式人生 > >【偶現】【reboot】【二】java.util.concurrent.TimeoutException

【偶現】【reboot】【二】java.util.concurrent.TimeoutException

Exception Log Time:[Sun Jul 16 03:26:28 EET 2017] [15751.216728]

Exception Class: Java (JE)
Exception Type: system_server_crash

Current Executing Process: 
system_server


Backtrace: 
Process: system_server
Build: Infinix/X601-A1/X601:6.0/MRA58K/X601-H536A1-M-160825V33:user/release-keys

java.util.concurrent.TimeoutException: android.view.ThreadedRenderer.finalize() timed out after 10 seconds
	at android.view.ThreadedRenderer.nDeleteProxy(Native Method)
	at android.view.ThreadedRenderer.finalize(ThreadedRenderer.java:418)
	at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:229)
	at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:207)
	at java.lang.Thread.run(Thread.java:818)

$** *** *** *** *** *** *** *** Fatal *** *** *** *** *** *** *** **$

因為此類問題大多數呈現低概率性的,而這樣一個JE,因Log資訊不是很全(只有Java Stack,DB裡的SWT_JBT_TRACE為空,無法結合SWT_JBT_TRACE的Native Stack判斷),好比某些ANR一樣,難以解決。
請按照如下Work around方法修改後測試:
/libcore/libart/src/main/java/java/lang/Daemons.java
private static final long MAX_FINALIZE_NANOS = 10L * NANOS_PER_SECOND; // 10修改為40