Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 44482 invoked from network); 15 Aug 2007 02:25:58 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Aug 2007 02:25:58 -0000 Received: (qmail 51649 invoked by uid 500); 15 Aug 2007 02:25:53 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 51623 invoked by uid 500); 15 Aug 2007 02:25:53 -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 51614 invoked by uid 99); 15 Aug 2007 02:25:53 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Aug 2007 19:25:53 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED 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; Wed, 15 Aug 2007 02:26:08 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 187B87141F4 for ; Tue, 14 Aug 2007 19:25:31 -0700 (PDT) Message-ID: <14934740.1187144731096.JavaMail.jira@brutus> Date: Tue, 14 Aug 2007 19:25:31 -0700 (PDT) From: "Yu-Nan He (JIRA)" To: commits@harmony.apache.org Subject: [jira] Commented: (HARMONY-4215) [drlvm][reliability] assert in JIT while unwinding stack (during enumeration) In-Reply-To: <2468776.1182168926030.JavaMail.jira@brutus> 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-4215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519838 ] Yu-Nan He commented on HARMONY-4215: ------------------------------------ I wrote a small function to check the root set before tracing. void check_root_set(GC* gc) { GC_Metadata* metadata = gc->metadata; pool_iterator_init(metadata->gc_rootset_pool); Vector_Block* root_set = pool_iterator_next(metadata->gc_rootset_pool); while(root_set){ POINTER_SIZE_INT* iter = vector_block_iterator_init(root_set); while(!vector_block_iterator_end(root_set,iter)){ REF *p_ref = (REF *)*iter; /* root ref cann't be NULL */ assert(*p_ref); iter = vector_block_iterator_advance(root_set, iter); } root_set = pool_iterator_next(metadata->gc_rootset_pool); } } (You can place this function in gc_metadata.cpp) If you want to check the root set, please call this function after enumeration. In gc_common.cpp : ...... gc_reset_rootset(gc); vm_enumerate_root_set_all_threads(); gc_copy_interior_pointer_table_to_rootset(); gc_set_rootset(gc); check_root_set(gc); <-----function call is placed here. ...... > [drlvm][reliability] assert in JIT while unwinding stack (during enumeration) > ----------------------------------------------------------------------------- > > Key: HARMONY-4215 > URL: https://issues.apache.org/jira/browse/HARMONY-4215 > Project: Harmony > Issue Type: Bug > Components: DRLVM > Environment: Win 2003 > Reporter: Aleksey Ignatenko > Attachments: 2rel_tests_fail.dmp, test.zip, util.Date_int.out.err > > > 2 reliablity tests failed on assertion in jit: > 1. CharsetSyncCacheTest > 2. ZlibTest > svn rev 548320 > Call stack: > jitrino.dll!_assert(const char * expr=0x01ba9f08, const char * filename=0x01ba9eb0, unsigned int lineno=0x000000ac) Line 295 C > > jitrino.dll!Jitrino::Ia32::StackInfo::read(Jitrino::MethodDesc * pMethodDesc=0x03bef720, unsigned int eip=0x00000000, bool isFirst=false) Line 172 + 0x1a C++ > jitrino.dll!Jitrino::Ia32::RuntimeInterface::unwindStack(Jitrino::MethodDesc * methodDesc=0x03bef720, JitFrameContext * context=0x02de90d4, bool isFirst=false) Line 40 C++ > jitrino.dll!Jitrino::Jitrino::UnwindStack(Jitrino::MethodDesc * methodDesc=0x03bef720, JitFrameContext * context=0x02de90d4, bool isFirst=false) Line 280 + 0x1e C++ > jitrino.dll!JIT_unwind_stack_frame(void * jit=0x012a6a48, Method * method=0x02cb3668, JitFrameContext * context=0x02de90d4) Line 362 + 0x18 C++ > harmonyvm.dll!Dll_JIT::unwind_stack_frame(Method * method=0x02cb3668, JitFrameContext * context=0x02de90d4) Line 94 + 0x14 C++ > harmonyvm.dll!si_goto_previous(StackIterator * si=0x02de90d0, bool over_popped=false) Line 315 + 0x32 C++ > harmonyvm.dll!vm_enumerate_root_set_single_thread_on_stack(StackIterator * si=0x02de90d0) Line 339 + 0xb C++ > harmonyvm.dll!vm_enumerate_thread(VM_thread * thread=0x02d7e088) Line 224 + 0x9 C++ > harmonyvm.dll!stop_the_world_root_set_enumeration() Line 110 + 0xc C++ > harmonyvm.dll!vm_enumerate_root_set_all_threads() Line 150 C++ > gc_gen.dll!gc_reclaim_heap(GC * gc=0x014d5de8, unsigned int gc_cause=0x00000003) Line 295 + 0x8 C++ > gc_gen.dll!gc_force_gc() Line 138 + 0xd C++ > harmonyvm.dll!Java_java_lang_VMMemoryManager_runGC(JNIEnv_External * __formal=0x02d9e240, JNIEnv_External * __formal=0x02d9e240) Line 138 + 0x8 C++ > 03bf33ef() > harmonyvm.dll!get_vm_thread(HyThread * thr=0x03bef9ec) Line 193 + 0xb C++ > harmonyvm.dll!get_vm_thread(HyThread * thr=0x00000001) Line 194 + 0x7 C++ > To reproduce onee needs to run these tests with 30 min cycle (set parameter in build.xml of reliablity tests). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.