You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Vera Petrashkova (JIRA)" <ji...@apache.org> on 2007/07/10 09:22:05 UTC
[jira] Commented: (HARMONY-4232) [testing][reliablity]
ThreadKillTest hangs
[ https://issues.apache.org/jira/browse/HARMONY-4232?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12511347 ]
Vera Petrashkova commented on HARMONY-4232:
-------------------------------------------
There is incorrectness in this test:
This test repeats some action several times (CYCLES_COUNT):
- creates Thread array and assigns its elements by MathThread and IOThread
- starts these threads and waits that they really start their execution
while (started < THREADS_COUNT) {
Thread.yield();
}
"started" variable is increased by started thread.
...
But "started" variable is defined as "static volatile" and it is initialized before general cycle starts.
63 public int test(String[] params) {
64 parseParams(params);
65 //table = new int[THREADS_COUNT];
66 started = 0; <<<<<<<<<<<<<<<<<<<
67 for (int i = 0; i < CYCLES_COUNT; i++) {
68 Thread t[] = new Thread[THREADS_COUNT];
69 for (int k = 0; k < THREADS_COUNT;) {
70 t[k] = new MathThread(k);
71 k++;
72 t[k] = new IOThread(k);
73 k++;
74 }
75 try {
76 for (int k = 0; k < THREADS_COUNT; k++) {
77 t[k].start();
78 }
79 // just wait for all threads started
80 while (started < THREADS_COUNT) {
81 Thread.yield();
82 }
As the result mentioned while-statement executes only on the first step
"started" variable initialization should be moved to the for-statement.
But this issue is not the general reason of the test hanging.
The test hangs when it tries to interrupt created threads randomly.
83 // random murder
84 for (int k = 0; k < THREADS_COUNT*5; k++) {
85 int j = rand.nextInt(THREADS_COUNT);
86 t[j].interrupt();
87 }
It looks like H-4220 causes the failure of this test.
> [testing][reliablity] ThreadKillTest hangs
> ------------------------------------------
>
> Key: HARMONY-4232
> URL: https://issues.apache.org/jira/browse/HARMONY-4232
> Project: Harmony
> Issue Type: Bug
> Components: build - test - ci
> Environment: Win
> Reporter: Aleksey Ignatenko
>
> Reliability test api.kernel.thread.ThreadKill.ThreadKillTest hangs running on drlvm both on release and debug binaries.
> I watch the deadlock with the debugger and saw that several monitors are waiting on "Object" object. I suppose it could be public static Object lock = new Object(); in the test.
> Trying to localize the issue I found that:
> - t[k].join(); does not affect test hanging
> - king of threads does not affect test hanging (not matter MathThread or IOThread).
> Vera Petrashkova also reported that test hangs sometimes on RI. Therefore I mark it as [testing][reliablity] for now but not [drlvm][threadding].
> Need additional investigation by threadding gurus.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.