harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Egor Pasko (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-1688) [DRLVM] Jitrino.OPT crashes on ClassTest
Date Mon, 09 Oct 2006 10:50:20 GMT
    [ http://issues.apache.org/jira/browse/HARMONY-1688?page=comments#action_12440856 ] 
            
Egor Pasko commented on HARMONY-1688:
-------------------------------------

I do not think that it is critical for Jitrino to have a fix like you are proposing. The root
cause is somewhere beyond the JIT.

Jitrino assumes that only methods with all parameters resolved can be issued for compilation.
We can put an assert for that (if it's not there yet). If some parameter is not resolved successfully,
Jitrino.OPT can crash. Unfortunately, I cannot find any words in the VM Spec that could guarantee
this. But I think it is the right assumption for JIT. 

What possible solutions I see (sorted by my preference)
* it's quite natural for VM to check if parameters were resolved successfully (and throw LinkageError
(or what??) if they are not), so, let VM do the job
* JIT has unresolved params, so, they can only be nulls and can be treated as j.l.Object (because
the resolution will always fail). Not so hard to do.
* JIT may refuse to compile a method (returning JIT_FAILURE), what VM should do in that case
becomes unclear to me (EM has something to do with it first). It is also quite complicated
to return JIT_FAILURE correctly in current JIT impl.

what else JIT can do for you? :)

> [DRLVM] Jitrino.OPT crashes on ClassTest
> ----------------------------------------
>
>                 Key: HARMONY-1688
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1688
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: debug gcc 3.3.3 DRLVM r452709
> SLES 9 32-bit SP2; CPU 2xXeon x64 (Clovertown B, 4cores)
>            Reporter: Alexey Varlamov
>
> The Jitrino.OPT fails with segmentation fault on org.apache.harmony.luni.tests.java.lang.ClassTest.

> To reproduce:
> > java -cp junit.jar:$classlib/modules/luni/bin/test:$classlib/deploy/build/test/support.jar
junit.textui.TestRunner org.apache.harmony.luni.tests.java.lang.ClassTest
> SIGSEGV in VM code.
> Stack trace:
> 	1: Jitrino::TypeManager::toInternalType(Jitrino::Type*) (??:-1)
> 	2: Jitrino::JavaLabelPrepass::JavaLabelPrepass(Jitrino::MemoryManager&, Jitrino::TypeManager&,
Jitrino::MemoryManager&, Jitrino::MethodDesc&, Jitrino::CompilationInterface&,
Jitrino::Opnd**) (??:-1)
> 	3: Jitrino::alloc_arena(Jitrino::Arena*, unsigned int) (??:-1)
> 	4: Jitrino::alloc_arena(Jitrino::Arena*, unsigned int) (??:-1)
> 	5: ?? (??:-1)
> 	6: Jitrino::MemoryManager::alloc(unsigned int) (??:-1)
> 	7: Jitrino::Tree::computeNodeOrder(Jitrino::TreeNode*, unsigned int&, unsigned int&)
(??:-1)
> 	8: ?? (??:-1)
> 	9: ?? (??:-1)
> 	10: Jitrino::JavaByteCodeTranslator::JavaByteCodeTranslator(Jitrino::CompilationInterface&,
Jitrino::MemoryManager&, Jitrino::IRBuilder&, Jitrino::ByteCodeParser&, Jitrino::MethodDesc&,
Jitrino::TypeManager&, Jitrino::JavaFlowGraphBuilder&) (??:-1)
> 	11: ?? (0015d890:15)
> 	12: Jitrino::MemoryManager::alloc(unsigned int) (??:-1)
> 	13: ?? (??:-1)
> 	14: Jitrino::JavaFlowGraphBuilder::JavaFlowGraphBuilder(Jitrino::MemoryManager&,
Jitrino::IRBuilder&) (??:-1)
> 	15: method_get_byte_code_addr (/nfs/ins/proj/drl/coreapi/avarlamo/harmony/linux.ia32/svn-repo/drlvm/vm/vmcore/src/class_support/C_Interface.cpp:365)
> 	16: ?? (??:-1)
> 	17: ?? (??:-1)
> 	18: Jitrino::JavaTranslator::translateMethod(Jitrino::CompilationInterface&, Jitrino::MethodDesc&,
Jitrino::IRBuilder&) (??:-1)
> <end of stack trace>

-- 
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