Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 61317 invoked from network); 5 Mar 2007 15:45:12 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 5 Mar 2007 15:45:12 -0000 Received: (qmail 6477 invoked by uid 500); 5 Mar 2007 15:45:20 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 6452 invoked by uid 500); 5 Mar 2007 15:45:20 -0000 Mailing-List: contact commits-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list commits@harmony.apache.org Received: (qmail 6443 invoked by uid 99); 5 Mar 2007 15:45:20 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 Mar 2007 07:45:20 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 Mar 2007 07:45:11 -0800 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 1282071433A for ; Mon, 5 Mar 2007 07:44:51 -0800 (PST) Message-ID: <2081241.1173109491073.JavaMail.jira@brutus> Date: Mon, 5 Mar 2007 07:44:51 -0800 (PST) From: "Gregory Shimansky (JIRA)" To: commits@harmony.apache.org Subject: [jira] Resolved: (HARMONY-1983) [drlvm][stress] Harmony crashes during loading of many classes which implements many interfaces. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HARMONY-1983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gregory Shimansky resolved HARMONY-1983. ---------------------------------------- Resolution: Fixed Patch applied at 514697. Attached test works ok now. Please check that the patch was applied as expected. > [drlvm][stress] Harmony crashes during loading of many classes which implements many interfaces. > ------------------------------------------------------------------------------------------------ > > Key: HARMONY-1983 > URL: https://issues.apache.org/jira/browse/HARMONY-1983 > Project: Harmony > Issue Type: Bug > Components: DRLVM > Environment: Windows XP, P4 3000HT > Reporter: Alexander D Shipilov > Assigned To: Gregory Shimansky > Priority: Minor > Attachments: classloader_wrap_primitive_fix.patch, ClassLoaderStressTest.zip > > > 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. - You can reply to this email to add a comment to the issue online.