You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Ivan Popov (JIRA)" <ji...@apache.org> on 2007/04/23 15:17:15 UTC

[jira] Closed: (HARMONY-3721) [drlvm][jit] JET crashes in deep recursion if started with JVMTI agent

     [ https://issues.apache.org/jira/browse/HARMONY-3721?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Popov closed HARMONY-3721.
-------------------------------


Verified for harmony-jdk-r531438. Closing this issue.


> [drlvm][jit] JET crashes in deep recursion if started with JVMTI agent
> ----------------------------------------------------------------------
>
>                 Key: HARMONY-3721
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3721
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: Linux/x86, harmony-hdk-r531333
>            Reporter: Ivan Popov
>         Assigned To: Gregory Shimansky
>         Attachments: cpuid.fix, cpuid_2.fix, cpuid_3.diff
>
>
> All JDWP tests of jdktools JPDA module failed on Linux/x86 after the recent changes in JET code for SSE2 support (r530955). Tests work fine on Windows/x86 and in -Xint mode on Linux/x86.
> When application is stared with JVMTI agent, JET falls into deep recursion and crashes in random place probably due to stack overflow. This happened after Agent_OnLoad() has been executed but before VMInit callback is invoked. Typical stack trace is the following:
> STDERR> SIGSEGV in VM code.
> STDERR> Stack trace:
> STDERR>   0: Jitrino::alloc_arena(Jitrino::Arena*, unsigned int) (.../working_vm/vm/jitrino/src/shared/Arena.cpp:47)
> STDERR>   1: Jitrino::MemoryManager::_alloc_arena(unsigned int) (.../working_vm/vm/jitrino/src/shared/MemoryManager.cpp:123)
> STDERR>   2: Jitrino::MemoryManager::alloc(unsigned int) (.../working_vm/vm/jitrino/src/shared/MemoryManager.cpp:223)
> STDERR>   3: operator new[](unsigned int, Jitrino::MemoryManager&) (.../working_vm/vm/jitrino/src/shared/MemoryManager.h:75)
> STDERR>   4: HashTableImpl (.../working_vm/vm/jitrino/src/shared/HashTable.h:56)
> STDERR>   5: HashTable (.../working_vm/vm/jitrino/src/shared/HashTable.h:332)
> STDERR>   6: PtrHashTable (.../working_vm/vm/jitrino/src/shared/HashTable.h:362)
> STDERR>   7: TypeManager (.../working_vm/vm/jitrino/src/shared/Type.cpp:340)
> STDERR>   8: JIT_compile_method_with_params (.../working_vm/vm/jitrino/src/vm/drl/DrlJITInterface.cpp:244)
> STDERR>   9: Dll_JIT::compile_method_with_params(void*, Method*, OpenMethodExecutionParams) (.../working_vm/vm/vmcore/include/dll_jit_intf.h:86)
> STDERR>  10: compile_do_compilation_jit(Method*, JIT*) (.../working_vm/vm/vmcore/src/jit/compile.cpp:657)
> STDERR>  11: vm_compile_method (.../working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2493)
> STDERR>  12: DrlEMImpl::compileMethod(Method*) (.../working_vm/vm/em/src/DrlEMImpl.cpp:540)
> STDERR>  13: CompileMethod (.../working_vm/vm/em/src/em_intf.cpp:50)
> STDERR>  14: compile_do_compilation (.../working_vm/vm/vmcore/src/jit/compile.cpp:770)
> STDERR>  15: compile_me(Method*) (.../working_vm/vm/vmcore/src/jit/compile.cpp:790)
> STDERR>  16: 0xB5D52162  <Generated stub>
> STDERR>  17: vm_invoke_native_array_stub (.../working_vm/vm/vmcore/src/util/ia32/base/invoke_native_stub_ia32.asm:41)
> STDERR>  18: JIT_execute_method_default(void*, _jmethodID*, jvalue*, jvalue*) (.../working_vm/vm/vmcore/src/util/ia32/base/ini_iA32.cpp:200)
> STDERR>  19: DrlEMImpl::executeMethod(_jmethodID*, jvalue*, jvalue*) (.../working_vm/vm/em/src/DrlEMImpl.cpp:510)
> STDERR>  20: ExecuteMethod (.../working_vm/vm/em/src/em_intf.cpp:44)
> STDERR>  21: vm_execute_java_method_array(_jmethodID*, jvalue*, jvalue*) (.../working_vm/vm/vmcore/src/jit/ini.cpp:56)
> STDERR>  22: create_exception(Class*, Method*, jvalue*) (.../working_vm/vm/vmcore/src/exception/exceptions_impl.cpp:251)
> STDERR>  23: create_exception(Class*, char const*, _jobject*) (.../working_vm/vm/vmcore/src/exception/exceptions_impl.cpp:271)
> STDERR>  24: exn_create(Class*, char const*, _jobject*) (.../working_vm/vm/vmcore/src/exception/exceptions.cpp:172)
> STDERR>  25: exn_create(char const*, char const*, _jobject*) (.../working_vm/vm/vmcore/src/exception/exceptions.cpp:210)
> STDERR>  26: compile_raise_exception (.../working_vm/vm/vmcore/src/jit/compile.cpp:722)
> STDERR>  27: compile_me(Method*) (.../working_vm/vm/vmcore/src/jit/compile.cpp:796)
> STDERR>  28: 0xB5D52162  <Generated stub>
> <...>
> To reproduce this bug run any JDWP test, for example org.apache.harmony.jpda.tests.jdwp.VirtualMachine.VersionTest:
> 1. create Harmony JDK with federated build:
>     svn checkout https://svn.apache.org/repos/asf/harmony/enhanced/trunk
>     cd trunk
>     ant
> 2. goto jdktools directory, add junit to classpath, and launch test case:
>     cd working_jdktools
>     export CLASSPATH=<...>/trunk/common_resources/depends/jars/junit_3.8.2/junit.jar
>     ant test -Dbuild.module=jpda -Dtest.case=org.apache.harmony.jpda.tests.jdwp.VirtualMachine.VersionTest
> 3. see results in <...>/trunk/working_jdktools/build/test_report/html/index.html
> It is possible also to run test directly from command line:
>    cd working_jdktools
>    deploy/jdk/bin/java -classpath ../common_resources/depends/jars/junit_3.8.2/junit.jar:build/tests/classes \
>    org.apache.harmony.jpda.tests.jdwp.VirtualMachine.VersionTest

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.