You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Aleksey Ignatenko (JIRA)" <ji...@apache.org> on 2007/01/30 06:51:33 UTC
[jira] Created: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
[dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
--------------------------------------------------------------------------------------------------------------------
Key: HARMONY-3079
URL: https://issues.apache.org/jira/browse/HARMONY-3079
Project: Harmony
Issue Type: Bug
Components: DRLVM
Environment: Win IA32, OPT
Reporter: Aleksey Ignatenko
Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
Testcase:2 methods return the same type, 1-st method calls the 2-nd:
class A;
class B{
static A getA(){return new A();}}
class C{
static A getA(){return B.getA();}}
main: C.getA();
JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
Posted by "Pavel Pervov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pavel Pervov updated HARMONY-3079:
----------------------------------
Attachment: H3079.patch
Workaround of type 'crutch'... But I do not understand how to fix this other way round.
> [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3079
> URL: https://issues.apache.org/jira/browse/HARMONY-3079
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Win IA32, OPT
> Reporter: Aleksey Ignatenko
> Attachments: H3079.patch, test.zip
>
>
> Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
> Testcase:2 methods return the same type, 1-st method calls the 2-nd:
> class A;
> class B{
> static A getA(){return new A();}}
> class C{
> static A getA(){return B.getA();}}
> main: C.getA();
> JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
> The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
Posted by "George Timoshenko (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12468511 ]
George Timoshenko commented on HARMONY-3079:
--------------------------------------------
There are two attemts to resolve A in one compilation seccion (of C::getA())
(the first - resolving ret type of B::getA at invokestatic of B::getA, the second - when translator initializes arguments and return types for C::getA)
Jitrino is not supposed to handle exceptions cached in VM. So at the second attempt exn_raized() == true.
> [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3079
> URL: https://issues.apache.org/jira/browse/HARMONY-3079
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Win IA32, OPT
> Reporter: Aleksey Ignatenko
> Attachments: test.zip
>
>
> Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
> Testcase:2 methods return the same type, 1-st method calls the 2-nd:
> class A;
> class B{
> static A getA(){return new A();}}
> class C{
> static A getA(){return B.getA();}}
> main: C.getA();
> JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
> The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
Posted by "Mikhail Fursov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12472646 ]
Mikhail Fursov commented on HARMONY-3079:
-----------------------------------------
Another test to demonstrate the problem:
compile and run:
import java.io.*;
public class Test {
public static void main(String args[]) {
new File("A.class").renameTo(new File("A.clss"));
test();
}
static void test() {
new File("A.clss").renameTo(new File("A.class"));
getA().foo();
}
static A getA() {return new A();}
}
class A {
void foo() {
System.out.println("PASSED!");
}
}
> [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3079
> URL: https://issues.apache.org/jira/browse/HARMONY-3079
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Win IA32, OPT
> Reporter: Aleksey Ignatenko
> Attachments: H3079.patch, test.zip
>
>
> Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
> Testcase:2 methods return the same type, 1-st method calls the 2-nd:
> class A;
> class B{
> static A getA(){return new A();}}
> class C{
> static A getA(){return B.getA();}}
> main: C.getA();
> JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
> The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
Posted by "Mikhail Fursov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12472636 ]
Mikhail Fursov commented on HARMONY-3079:
-----------------------------------------
Here is one more minitest to show that JIT does not handle unresolved types correctly. (Minimized eclipse bug version)
1) Compile
2) Remove A1,A2 classes
3) Run
public class Test {
public static void main(String args[]) {
foo1();
foo2();
System.out.println("PASSED!");
}
static A1 foo1(){return null;}
static A2 foo2(){return null;}
}
class A1 {}
class A2 {}
> [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3079
> URL: https://issues.apache.org/jira/browse/HARMONY-3079
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Win IA32, OPT
> Reporter: Aleksey Ignatenko
> Attachments: H3079.patch, test.zip
>
>
> Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
> Testcase:2 methods return the same type, 1-st method calls the 2-nd:
> class A;
> class B{
> static A getA(){return new A();}}
> class C{
> static A getA(){return B.getA();}}
> main: C.getA();
> JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
> The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
Posted by "Gregory Shimansky (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12473683 ]
Gregory Shimansky commented on HARMONY-3079:
--------------------------------------------
I think we already have tests which actually require lazy resolutions in HARMONY-1945, so we have plenty of places where patch for lazy resolution may be attached, not to mention newly opened JIRA :)
> [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3079
> URL: https://issues.apache.org/jira/browse/HARMONY-3079
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Win IA32, OPT
> Reporter: Aleksey Ignatenko
> Attachments: H3079.patch, test.zip
>
>
> Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
> Testcase:2 methods return the same type, 1-st method calls the 2-nd:
> class A;
> class B{
> static A getA(){return new A();}}
> class C{
> static A getA(){return B.getA();}}
> main: C.getA();
> JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
> The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
Posted by "Gregory Shimansky (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gregory Shimansky closed HARMONY-3079.
--------------------------------------
No response, assuming ok.
> [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3079
> URL: https://issues.apache.org/jira/browse/HARMONY-3079
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Win IA32, OPT
> Reporter: Aleksey Ignatenko
> Assignee: Gregory Shimansky
> Attachments: H3079.patch, test.zip
>
>
> Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
> Testcase:2 methods return the same type, 1-st method calls the 2-nd:
> class A;
> class B{
> static A getA(){return new A();}}
> class C{
> static A getA(){return B.getA();}}
> main: C.getA();
> JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
> The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
Posted by "Aleksey Ignatenko (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Ignatenko updated HARMONY-3079:
---------------------------------------
Patch Info: [Patch Available]
> [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3079
> URL: https://issues.apache.org/jira/browse/HARMONY-3079
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Win IA32, OPT
> Reporter: Aleksey Ignatenko
> Attachments: H3079.patch, test.zip
>
>
> Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
> Testcase:2 methods return the same type, 1-st method calls the 2-nd:
> class A;
> class B{
> static A getA(){return new A();}}
> class C{
> static A getA(){return B.getA();}}
> main: C.getA();
> JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
> The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
Posted by "Aleksey Ignatenko (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Ignatenko updated HARMONY-3079:
---------------------------------------
Attachment: test.zip
To reproduce one needs to:
1. Compile sorces from test attached and erase dummy.class file.
2. Run "HDK.../bin/java -Xem:opt Start"
> [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3079
> URL: https://issues.apache.org/jira/browse/HARMONY-3079
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Win IA32, OPT
> Reporter: Aleksey Ignatenko
> Attachments: test.zip
>
>
> Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
> Testcase:2 methods return the same type, 1-st method calls the 2-nd:
> class A;
> class B{
> static A getA(){return new A();}}
> class C{
> static A getA(){return B.getA();}}
> main: C.getA();
> JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
> The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12473626 ]
Alexey Varlamov commented on HARMONY-3079:
------------------------------------------
Gregory, please hold on resolving/closing this issue - the patch you have applied is just a workaround; while it may help to make some progress with EUT, still more solid solution is needed (on JIT side, looking forward to lazy resolution).
> [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3079
> URL: https://issues.apache.org/jira/browse/HARMONY-3079
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Win IA32, OPT
> Reporter: Aleksey Ignatenko
> Attachments: H3079.patch, test.zip
>
>
> Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
> Testcase:2 methods return the same type, 1-st method calls the 2-nd:
> class A;
> class B{
> static A getA(){return new A();}}
> class C{
> static A getA(){return B.getA();}}
> main: C.getA();
> JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
> The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
Posted by "Aleksey Ignatenko (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12468878 ]
Aleksey Ignatenko commented on HARMONY-3079:
--------------------------------------------
P. Pervov proposed to always return NULL from classloader in case of some exception is raised. This just workaround, so the issue is not fixed yet as there is no good solution for it yet.
> [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3079
> URL: https://issues.apache.org/jira/browse/HARMONY-3079
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Win IA32, OPT
> Reporter: Aleksey Ignatenko
> Attachments: test.zip
>
>
> Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
> Testcase:2 methods return the same type, 1-st method calls the 2-nd:
> class A;
> class B{
> static A getA(){return new A();}}
> class C{
> static A getA(){return B.getA();}}
> main: C.getA();
> JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
> The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
Posted by "Gregory Shimansky (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gregory Shimansky resolved HARMONY-3079.
----------------------------------------
Resolution: Fixed
Patch applied at 508131. Please check that it was applied as expected.
> [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3079
> URL: https://issues.apache.org/jira/browse/HARMONY-3079
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Win IA32, OPT
> Reporter: Aleksey Ignatenko
> Attachments: H3079.patch, test.zip
>
>
> Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
> Testcase:2 methods return the same type, 1-st method calls the 2-nd:
> class A;
> class B{
> static A getA(){return new A();}}
> class C{
> static A getA(){return B.getA();}}
> main: C.getA();
> JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
> The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
Posted by "Pavel Ozhdikhin (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12470906 ]
Pavel Ozhdikhin commented on HARMONY-3079:
------------------------------------------
It looks like "build ehwa.test" fails on DRLVM built in debug mode (-Xem:opt) because of the same reason.
The stack trace is following:
harmonyvm.dll!_assert(const char * expr=0x00789920, const char * filename=0x007898c8, unsigned int lineno=1526) Line 295 C
harmonyvm.dll!UserDefinedClassLoader::DoLoadClass(Global_Env * env=0x01263840, const String * className=0x047aa734) Line 1526 + 0x20 C++
harmonyvm.dll!ClassLoader::LoadClass(Global_Env * env=0x01263840, const String * className=0x047aa734) Line 1472 + 0x15 C++
harmonyvm.dll!TypeDesc::load_type_desc() Line 135 + 0x16 C++
harmonyvm.dll!type_info_get_class(TypeDesc * tih=0x048444b8) Line 2027 + 0x8 C++
jitrino.dll!Jitrino::DrlVMCompilationInterface::getTypeFromDrlVMTypeHandle(TypeDesc * typeHandle=0x048444b8, bool isManagedPointer=false) Line 530 + 0x9 C++
jitrino.dll!Jitrino::DrlVMMethodSignatureDesc::getReturnType() Line 340 + 0xe C++
jitrino.dll!Jitrino::JavaByteCodeTranslator::initArgs() Line 456 C++
jitrino.dll!Jitrino::JavaByteCodeTranslator::JavaByteCodeTranslator(Jitrino::CompilationInterface & ci={...}, Jitrino::MemoryManager & mm={...}, Jitrino::IRBuilder & irb={...}, Jitrino::ByteCodeParser & bcp={...}, Jitrino::MethodDesc & methodDesc={...}, Jitrino::TypeManager & typeManager={...}, Jitrino::JavaFlowGraphBuilder & cfg={...}) Line 239 C++
jitrino.dll!Jitrino::JavaTranslator::translateMethod(Jitrino::CompilationInterface & ci={...}, Jitrino::MethodDesc & methodDesc={...}, Jitrino::IRBuilder & irBuilder={...}) Line 58 C++
jitrino.dll!Jitrino::TranslatorSession::translate() Line 62 + 0xb C++
jitrino.dll!Jitrino::TranslatorSession::run() Line 45 C++
jitrino.dll!Jitrino::runPipeline(Jitrino::CompilationContext * c=0x0013e0dc) Line 227 C++
jitrino.dll!Jitrino::compileMethod(Jitrino::CompilationContext * cc=0x0013e0dc) Line 264 C++
jitrino.dll!Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext * cc=0x0013e0dc) Line 286 + 0x6 C++
jitrino.dll!JIT_compile_method_with_params(void * jit=0x012c6b68, void * compilation=0x0013e38c, Method * method_handle=0x04bd3140, OpenMethodExecutionParams compilation_params={...}) Line 278 + 0xa C++
harmonyvm.dll!Dll_JIT::compile_method_with_params(void * compilation=0x0013e38c, Method * method=0x04bd3140, OpenMethodExecutionParams flags={...}) Line 86 + 0x18 C++
harmonyvm.dll!compile_do_compilation_jit(Method * method=0x04bd3140, JIT * jit=0x012c6b68) Line 645 + 0x19 C++
harmonyvm.dll!vm_compile_method(void * jit=0x012c6b68, Method * method=0x04bd3140) Line 2468 + 0xd C++
em.dll!DrlEMImpl::compileMethod(Method * mh=0x04bd3140) Line 546 + 0x13 C++
em.dll!CompileMethod(Method * method_handle=0x04bd3140) Line 49 + 0x19 C++
harmonyvm.dll!compile_do_compilation(Method * method=0x04bd3140) Line 753 + 0x15 C++
harmonyvm.dll!compile_me(Method * method=0x04bd3140) Line 773 + 0x9 C++
01360162()
harmonyvm.dll!rth_aastore_test(ManagedObject * elem=0x12cd9a34, void * array=0x0553e250) Line 571 + 0x17 C++
harmonyvm.dll!Class::helper_get_interface_vtable(ManagedObject * obj=0x1133a2f0, Class * iid=0x12cd9a34) Line 514 + 0xa C++
1122c968()
harmonyvm.dll!rth_type_test_update_stats(VTable * sub=0x12cd4834, Class * super=0x01360169) Line 361 + 0xb C++
harmonyvm.dll!m2n_free_local_handles() Line 268 + 0xa C++
> [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3079
> URL: https://issues.apache.org/jira/browse/HARMONY-3079
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Win IA32, OPT
> Reporter: Aleksey Ignatenko
> Attachments: test.zip
>
>
> Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
> Testcase:2 methods return the same type, 1-st method calls the 2-nd:
> class A;
> class B{
> static A getA(){return new A();}}
> class C{
> static A getA(){return B.getA();}}
> main: C.getA();
> JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
> The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Assigned: (HARMONY-3079) [dlrvm][classloader][opt] Opt does
not handle exception raised by classloader (assertion fails
classloader.cpp:1521)
Posted by "Gregory Shimansky (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HARMONY-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gregory Shimansky reassigned HARMONY-3079:
------------------------------------------
Assignee: Gregory Shimansky
> [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521)
> --------------------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-3079
> URL: https://issues.apache.org/jira/browse/HARMONY-3079
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Environment: Win IA32, OPT
> Reporter: Aleksey Ignatenko
> Assigned To: Gregory Shimansky
> Attachments: H3079.patch, test.zip
>
>
> Assertion failed - classloader.cpp:1521 on EUT jdtdebug suit.
> Testcase:2 methods return the same type, 1-st method calls the 2-nd:
> class A;
> class B{
> static A getA(){return new A();}}
> class C{
> static A getA(){return B.getA();}}
> main: C.getA();
> JIT tries to resolve A class 2 times. If class is not accessable, classloader raises ClassNotfoundException 1-st time, JIT does not handle it, then when the 2-nd time JIT tries to resolve the same class VM fails with the assert on loading (because exception was already raised).
> The issue here is that JIT does not handle raised exception by classloader in 1 compilation session.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.