[DESCRIPTION]
D/ModuleListener: ModuleListener.testFailed(android.jvmti.cts.JvmtiHostTest911#testJvmti, junit.framework.AssertionFailedError: [android.jvmti.cts.JvmtiRunTestBasedTest#testRunTest java.lang.IllegalStateException: ###################
### Same thread ###
###################
### Same thread ###
###################
这项测试失败主要是因为手机里面的zygote进程创建进程时,所属进程中的线程不符合Google的要求。
一般是由客户自己加的功能引起的。
[SOLUTION]
排查方法:
host_log_***************.txt中
在java.lang.IllegalStateException中的的下面会有一大串的字符串,找到类似下面的log.出现第一个+号的即为
客户手机里面多出来的线程。
- ReferenceQueueDaemon
+ MEntryThread
- <not printed>
+
---------
- Signal Catcher
+ ReferenceQueueDaemon
-
+ <not printed>
---------
+ MEntryThread
- <not printed>
+
---------
- Signal Catcher
+ ReferenceQueueDaemon
-
+ <not printed>
---------
可以用下面的命令查是是否手机里面有这个线程. 如果log中显示的是另外的线程名,下面命令中的grep 后面的也需修改.
ps -AT | grep MEntryThread
可以发现手机里面的确是有很多线程,这个一般由第三方库引起的问题,需要回退版本查看修改点.
ps -AT | grep MEntryThread 如果没有这线程,则是OK的版本。不排除有多几个线程的情况,需要一一排查。
一般第三方会修复这个问题,修复这个问题后,请确保
【CTS】CtsOsHostTestCases--android.os.cts.ProcfsHostTests#testProcTidStat
这个测试项也可以正常通过。