You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Gregory Shimansky (JIRA)" <ji...@apache.org> on 2006/12/11 14:23:23 UTC
[jira] Assigned: (HARMONY-2083) [drlvm] Synchronization problem in
class resolution code
[ http://issues.apache.org/jira/browse/HARMONY-2083?page=all ]
Gregory Shimansky reassigned HARMONY-2083:
------------------------------------------
Assignee: Gregory Shimansky
> [drlvm] Synchronization problem in class resolution code
> --------------------------------------------------------
>
> Key: HARMONY-2083
> URL: http://issues.apache.org/jira/browse/HARMONY-2083
> Project: Harmony
> Issue Type: Bug
> Reporter: Mikhail Fursov
> Assigned To: Gregory Shimansky
> Attachments: H2083.patch
>
>
> The test fails in -Xem:opt and -Xem:jet modes:
> public class Test extends Thread {
> static final int N_THREADS = 100;
> static final int N_ITERS = 500;
> public static void main(String[] args) throws Exception {
> Thread threads[] = new Thread[N_THREADS];
> for (int i = 0; i < N_THREADS; i++) threads[i] = new Test();
> System.out.println("START");
> for (int i = 0; i < N_THREADS; i++) threads[i].start();
> System.out.println("JOIN");
> for (int i = 0; i < N_THREADS; i++) threads[i].join();
> System.out.println("PASSED");
> }
> public void run() {
> for (int i = 0; i < N_ITERS; i++) {
> try {
> new Missed();
> } catch (Throwable e) {}
> }
> }
> }
> class Missed {
> }
> compile it and remove Missed.class file
> The stacktrace of failure I have is:
> > harmonyvm.dll!_NMSG_WRITE(int rterrnum=10) Line 195 C
> harmonyvm.dll!abort() Line 44 + 0x7 C
> harmonyvm.dll!MapEx<String const *,ClassLoader::FailedClass>::Insert(const String * key=0x02c0d5a4, ClassLoader::FailedClass & elem={...}) Line 271 C++
> harmonyvm.dll!ClassLoader::AddFailedClass(const String * className=0x02c0d5a4, _jobject * const exn=0x02cef2a8) Line 412 C++
> harmonyvm.dll!UserDefinedClassLoader::DoLoadClass(Global_Env * env=0x011e4258, const String * className=0x02c0d5a4) Line 1862 C++
> harmonyvm.dll!ClassLoader::LoadClass(Global_Env * env=0x011e4258, const String * className=0x02c0d5a4) Line 1694 + 0x15 C++
> harmonyvm.dll!ClassLoader::LoadVerifyAndPrepareClass(Global_Env * env=0x011e4258, const String * name=0x02c0d5a4) Line 387 + 0x10 C++
> harmonyvm.dll!_resolve_class(Global_Env * env=0x011e4258, Class * clss=0x02b3d090, unsigned int cp_index=12) Line 157 + 0x13 C++
> harmonyvm.dll!_resolve_class_new(Global_Env * env=0x011e4258, Class * clss=0x02b3d090, unsigned int cp_index=12) Line 221 + 0x11 C++
> harmonyvm.dll!resolve_class_new(void * h=0x0351f8a0, Class * c=0x02b3d090, unsigned int index=12) Line 901 + 0x1a C++
> harmonyvm.dll!vm_resolve_class_new(void * h=0x0351f8a0, Class * c=0x02b3d090, unsigned int index=12) Line 902 + 0x11 C++
> jitrino.dll!Jitrino::Jet::Compiler::gen_magic() Line 106 + 0x15 C++
> jitrino.dll!Jitrino::Jet::Compiler::handle_inst() Line 51 + 0x7 C++
> jitrino.dll!Jitrino::Jet::Compiler::comp_gen_insts(unsigned int pc=0, unsigned int parentPC=47, unsigned int jsr_lead=4294967295) Line 1001 C++
> jitrino.dll!Jitrino::Jet::Compiler::comp_gen_code_bb(unsigned int pc=9) Line 819 + 0xe C++
> jitrino.dll!Jitrino::Jet::Compiler::compile(void * ch=0x0351f8a0, Method * method=0x02c175e0, const OpenMethodExecutionParams & params={...}) Line 394 C++
> jitrino.dll!Jitrino::Jet::compile_with_params(void * jit_handle=0x0123b0e0, void * ch=0x0351f8a0, Method * method=0x02c175e0, OpenMethodExecutionParams params={...}) Line 524 + 0x2c C++
> jitrino.dll!JIT_compile_method_with_params(void * jit=0x0123b0e0, void * compilation=0x0351f8a0, Method * method_handle=0x02c175e0, OpenMethodExecutionParams compilation_params={...}) Line 278 + 0x1b C++
> harmonyvm.dll!Dll_JIT::compile_method_with_params(void * compilation=0x0351f8a0, Method * method=0x02c175e0, OpenMethodExecutionParams flags={...}) Line 86 + 0x18 C++
> harmonyvm.dll!compile_do_compilation_jit(Method * method=0x02c175e0, JIT * jit=0x0123b0e0) Line 704 + 0x19 C++
> harmonyvm.dll!vm_compile_method(void * jit=0x0123b0e0, Method * method=0x02c175e0) Line 2538 + 0xd C++
> em.dll!DrlEMImpl::compileMethod(Method * mh=0x02c175e0) Line 517 + 0x13 C++
> em.dll!CompileMethod(Method * method_handle=0x02c175e0) Line 49 + 0x19 C++
> harmonyvm.dll!compile_do_compilation(Method * method=0x02c175e0, JIT_Flags flags={...}) Line 784 + 0x15 C++
> harmonyvm.dll!compile_jit_a_method(Method * method=0x02c175e0) Line 832 + 0xd C++
--
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