harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexander D Shipilov (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-1983) Harmony crashes during loading of many classes which implements many interfaces.
Date Fri, 27 Oct 2006 09:47:17 GMT
Harmony crashes during loading of many classes which implements many interfaces.
--------------------------------------------------------------------------------

                 Key: HARMONY-1983
                 URL: http://issues.apache.org/jira/browse/HARMONY-1983
             Project: Harmony
          Issue Type: Bug
          Components: DRLVM
         Environment: Windows XP, P4 3000HT
            Reporter: Alexander D Shipilov
            Priority: Minor


Test description:
  Start a lot of threads.
  All of them run the following:
    - load a class which implemens interface with more than 500 superinterfaces;
    - verify fields values of this classes;
  This verification is repeated several times.

Harmony crashes during test running but not always. It happens on average in 10% of runs.
So it is better to run test in cycle.

Steps for reproducing:
Unzip attached file. It contains sources and classes of test.
If you like to re-compile test, use command in cygwin:
$ find dir -name "*.java"|xargs javac
where dir - is a directory of test (org e.g.)
To run test in cycle use command:
$ gg=104; r=0; while (($gg == 104)); do (./java -Dorg.apache.harmony.test.share.stress.ReliabilityRunner.params="org.apache.harmony.test.stress.classloader.NotSynchThreads.SupIntf.testManySupIntf1{}"
-classpath "./;./junit.jar;" org.apache.harmony.test.share.stress.ReliabilityRunner;); let
"gg = $?"; let "r += 1"; echo $r; echo $gg; done
where ./java - is a tested jvm (harmony), ./junit.jar; - is a full path to the junit.jar

Result on RI:
$ gg=104; r=0; while (($gg == 104)); do (java -Dorg.apache.harmony.test.share.s
tress.ReliabilityRunner.params="org.apache.harmony.test.stress.classloader.NotS
ynchThreads.SupIntf.testManySupIntf1{}" -classpath "./;./junit.jar;" org.apache
.harmony.test.share.stress.ReliabilityRunner;); let "gg = $?"; let "r += 1"; ec
ho $r; echo $gg; done
[debug] started null(org.apache.harmony.test.share.stress.ReliabilityRunner)
[debug] timeToWork = 100, timeToAbort = 600
[debug] started null(org.apache.harmony.test.share.stress.generator.Thread)
[debug] Thread.setContext { org.apache.harmony.test.stress.classloader.NotSync
Threads.SupIntf.testManySupIntf1{} }
[debug] Starting 1 threads
[debug] completed null(org.apache.harmony.test.share.stress.generator.Thread)
[debug] ThreadToRun.run()
[debug] Generator.execute()
[debug] class = org.apache.harmony.test.stress.classloader.NotSynchThreads.SupI
tf.testManySupIntf1
[debug] org.apache.harmony.test.stress.classloader.NotSynchThreads.SupIntf.test
anySupIntf1 { }
[debug] started test(org.apache.harmony.test.stress.classloader.NotSynchThreads
SupIntf.testManySupIntf1)
[debug] Start testManySupIntf
[debug] Number of iterations: 2
[debug] Number of created thread: 5
[debug] completed test(org.apache.harmony.test.stress.classloader.NotSynchThrea
s.SupIntf.testManySupIntf1)
[debug] Tests completed greacefully
[debug] completed null(org.apache.harmony.test.share.stress.ReliabilityRunner)
[debug] TimeKeeper is interrupted
[debug] Test passed, time = 6359

Result on Harmony:
$ gg=104; r=0; while (($gg == 104)); do (./java -Dorg.apache.harmony.test.share
.stress.ReliabilityRunner.params="org.apache.harmony.test.stress.classloader.No
tSynchThreads.SupIntf.testManySupIntf1{}" -classpath "./;./junit.jar;" org.apac
he.harmony.test.share.stress.ReliabilityRunner;); let "gg = $?"; let "r += 1";
echo $r; echo $gg; done
[debug] started null(org.apache.harmony.test.share.stress.ReliabilityRunner)
[debug] timeToWork = 100, timeToAbort = 600
[debug] started null(org.apache.harmony.test.share.stress.generator.Thread)
[debug] Thread.setContext { org.apache.harmony.test.stress.classloader.NotSync
Threads.SupIntf.testManySupIntf1{} }
[debug] Starting 1 threads
[debug] completed null(org.apache.harmony.test.share.stress.generator.Thread)
[debug] ThreadToRun.run()
[debug] Generator.execute()
[debug] class = org.apache.harmony.test.stress.classloader.NotSynchThreads.SupI
tf.testManySupIntf1
[debug] org.apache.harmony.test.stress.classloader.NotSynchThreads.SupIntf.test
anySupIntf1 { }
[debug] started test(org.apache.harmony.test.stress.classloader.NotSynchThreads
SupIntf.testManySupIntf1)
[debug] Start testManySupIntf
[debug] Number of iterations: 2
[debug] Number of created thread: 5
SEH handler: shutdown error
Call stack:
harmonyvm.dll!call_method_no_ref_result(JNIEnv_External * env=0x02638af0, _jobject * obj=0x00000000,
_jmethodID * methodID=0x02d7fa64, jvalue * args=0x02d7f9d0, jvalue * result=0x00000000, int
non_virtual=0) Line 149 + 0x2 bytes C++
harmonyvm.dll!CallNonvirtualVoidMethodA(JNIEnv_External * env=0x02638af0, _jobject * obj=0x02d7fa64,
_jobject * clazz=0x0233da78, _jmethodID * methodID=0x00000000, jvalue * args=0x02d7f9d0) Line
621 + 0x1e bytes C++
harmonyvm.dll!NewObjectA(JNIEnv_External * env=0x02638af0, _jobject * clazz=0x0233da78, _jmethodID
* methodID=0x00000000, jvalue * args=0x02d7f9d0) Line 1031 C++
harmonyvm.dll!wrap_primitive(JNIEnv_External * env=0x02638af0, jvalue value={...}, char sig='I')
Line 237 C++
harmonyvm.dll!invoke_primitive_method(JNIEnv_External * jenv=0x00000000, _jobject * obj=0x02d7fa5c,
_jobject * declaring_class=0x0264ade8, Method * method=0x00000000, jvalue * jvalue_args=0x02d7fa1c)
Line 193 + 0x1e bytes C++
harmonyvm.dll!Java_java_lang_reflect_VMReflection_invokeMethod(JNIEnv_External * jenv=0x02638af0,
_jobject * __formal=0x02d7fa58, __int64 member=204907306274869276, _jobject * obj=0x02d7fa5c,
_jobject * args=0x00000000) Line 221 + 0xe bytes C++
012c46b9() 
harmonyvm.dll!get_thread_ptr_stub() Line 134 + 0xd bytes C++
harmonyvm.dll!m2n_pop_local_handles() Line 250 + 0x9 bytes C++
ntdll.dll!7c82f9dd() 
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] 
> harmonyvm.dll!free(void * pBlock=0x02663420) Line 103 C
harmonyvm.dll!GcFrame::~GcFrame() Line 91 + 0x6 bytes C++
harmonyvm.dll!compile_jit_a_method(Method * method=0x00000000) Line 841 + 0x11 bytes C++
harmonyvm.dll!log4cxx::Logger::getEffectiveLevel() Line 180 + 0xd bytes C++

Harmony version:
Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors,
as applicable.
java version "1.5.0"
pre-alpha : not complete or compatible
svn = r467316, (Oct 27 2006), Windows/ia32/msvc 1310, release build
http://incubator.apache.org/harmony

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message