You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Mikhail Fursov (JIRA)" <ji...@apache.org> on 2007/04/13 12:25:15 UTC
[jira] Commented: (HARMONY-3639) [drlvm][jit] ManyThreadTest
deadlocks in JIT
[ https://issues.apache.org/jira/browse/HARMONY-3639?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12488640 ]
Mikhail Fursov commented on HARMONY-3639:
-----------------------------------------
When I run this test on Windows I see the following error:
....
Iteration = 440000
Iteration = 450000
Iteration = 460000
Iteration = 470000
Iteration = 480000
Iteration = 490000
Iteration = 500000
Iteration = 510000
Iteration = 520000
hythr.dll!_assert(const char * expr=0x10049930, const char * filename=0x100498e0, unsigned int lineno=652) Line 295 C
hythr.dll!locktable_get_fat_monitor(int lock_id=-524288) Line 652 + 0x25 C
> hythr.dll!hythread_thin_monitor_try_enter(int * lockword_ptr=0x20dc7334) Line 309 + 0xe C
015a0919()
harmonyvm.dll!vm_invoke_native_array_stub(unsigned int * args=0x05aaf984, int sz=1, void * f=0x0186aea0) Line 77 C++
harmonyvm.dll!JIT_execute_method_default(void * jit=0x00000000, _jmethodID * methodID=0x02f7a1b0, jvalue * return_value=0x00000000, jvalue * args=0x05aafd00) Line 200 C++
em.dll!DrlEMImpl::executeMethod(_jmethodID * meth=0x02f7a1b0, jvalue * return_value=0x00000000, jvalue * args=0x05aafd00) Line 509 + 0x16 C++
em.dll!ExecuteMethod(_jmethodID * meth=0x02f7a1b0, jvalue * return_value=0x00000000, jvalue * args=0x05aafd00) Line 43 + 0x21 C++
harmonyvm.dll!vm_execute_java_method_array(_jmethodID * method=0x02f7a1b0, jvalue * result=0x00000000, jvalue * args=0x05aafd00) Line 51 + 0x1b C++
harmonyvm.dll!call_method_no_ref_result(JNIEnv_External * jni_env=0x052ef538, _jobject * obj=0x049e0bb0, _jmethodID * methodID=0x02f7a1b0, jvalue * args=0x00000000, jvalue * result=0x00000000, int non_virtual=0) Line 187 + 0x11 C++
harmonyvm.dll!CallVoidMethodA(JNIEnv_External * jni_env=0x052ef538, _jobject * obj=0x049e0bb0, _jmethodID * methodID=0x02f7a1b0, jvalue * args=0x00000000) Line 225 + 0x19 C++
harmonyvm.dll!wrapper_proc(void * arg=0x04af2d00) Line 102 + 0x24 C
hythr.dll!thread_start_proc(void * arg=0x05b66fe8) Line 713 + 0x9 C
hythr.dll!_threadstartex(void * ptd=0x13c98298) Line 241 + 0xd C
I think this is VM issue, but I will continue investigation.
> [drlvm][jit] ManyThreadTest deadlocks in JIT
> --------------------------------------------
>
> Key: HARMONY-3639
> URL: https://issues.apache.org/jira/browse/HARMONY-3639
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Reporter: Peter Novodvorsky
> Priority: Minor
>
> ManyThreadsTest from HARMONY-2742 sometimes hangs on 4996 iteration, backtrace shows that it hangs in compiler:
> (gdb) thread 1
> [Switching to thread 1 (Thread 1080397952 (LWP 22821))]#0 0xffffe410 in ?? ()
> (gdb) thread 0
> Thread ID 0 not known.
> (gdb) where
> #0 0xffffe410 in ?? ()
> #1 0xbfffc7b4 in ?? ()
> #2 0x00000002 in ?? ()
> #3 0x00000000 in ?? ()
> #4 0x40652efe in __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0
> #5 0x4064fc6c in _L_mutex_lock_88 () from /lib/tls/libpthread.so.0
> #6 0x00000ff4 in ?? ()
> #7 0xbfffc7c4 in ?? ()
> #8 0x40552bf8 in __elf_set___libc_thread_subfreeres_element___rpc_thread_destroy__ () from /lib/tls/libc.so.6
> #9 0xb7b1de00 in ?? ()
> #10 0x423db324 in ?? ()
> #11 0xbfffc7c4 in ?? ()
> #12 0x4050435a in pthread_mutex_lock () from /lib/tls/libc.so.6
> #13 0x4050435a in pthread_mutex_lock () from /lib/tls/libc.so.6
> #14 0x41c7a6a0 in Jitrino::Mutex::lock (this=0x41f71a28) at mkernel.h:111
> #15 0x41c7e324 in Jitrino::CompilationInterface::lockMethodData (
> this=0xbfffc9cc)
> at /localdisk/users/panovodv/harmony/tree/trunk/working_vm/vm/jitrino/src/vm/drl/DrlVMInterface.cpp:873
> #16 0x41d8b316 in Jitrino::LockMethodSessionAction::run (this=0xb7b43f0c)
> at /localdisk/users/panovodv/harmony/tree/trunk/working_vm/vm/jitrino/src/main/Jitrino.cpp:197
> ---Type <return> to continue, or q <return> to quit---q
> Quit
> (gdb) thread 2
> [Switching to thread 2 (Thread -1818022992 (LWP 27816))]#0 0xffffe410 in ?? ()
> (gdb) where
> #0 0xffffe410 in ?? ()
> #1 0x93a313b4 in ?? ()
> #2 0x93a32bb0 in ?? ()
> #3 0x8d36be30 in ?? ()
> #4 0x404e307c in sched_yield () from /lib/tls/libc.so.6
> #5 0x4001fe18 in hythread_yield ()
> at /localdisk/users/panovodv/harmony/tree/trunk/working_vm/vm/thread/src/thread_native_basic.c:330
> #6 0x40bca40f in jthread_monitor_enter (monitor=0x89658f0)
> at /localdisk/users/panovodv/harmony/tree/trunk/working_vm/vm/thread/src/thread_java_monitors.c:131
> #7 0x4194c5de in ?? ()
> #8 0x089658f0 in ?? ()
> #9 0x93a325c8 in ?? ()
> #10 0xb036d5d0 in ?? ()
> #11 0x089658e8 in ?? ()
> #12 0x00000000 in ?? ()
> #13 0x00000000 in ?? ()
> #14 0x00000000 in ?? ()
> #15 0xdeadbeef in ?? ()
> #16 0xdeadbeef in ?? ()
> #17 0x423dbfe4 in ?? ()
> #18 0x93a3152c in ?? ()
> ---Type <return> to continue, or q <return> to quit---q
> Quit
> (gdb) thread 3
> [Switching to thread 3 (Thread 1389202352 (LWP 22824))]#0 0xffffe410 in ?? ()
> (gdb) where
> #0 0xffffe410 in ?? ()
> #1 0x52cd81cc in ?? ()
> #2 0x0000001b in ?? ()
> #3 0x00000000 in ?? ()
> #4 0x40650896 in pthread_cond_wait@@GLIBC_2.3.2 ()
> from /lib/tls/libpthread.so.0
> #5 0x405041b3 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/libc.so.6
> #6 0x4001e882 in os_cond_timedwait (cond=0x52d03448, mutex=0x52d03430, ms=0,
> nano=0)
> at /localdisk/users/panovodv/harmony/tree/trunk/working_vm/vm/thread/src/linux/os_condvar.c:41
> #7 0x400207d1 in condvar_wait_impl (cond=0x52d03448, mutex=0x52d03430, ms=0,
> nano=0, interruptable=1)
> at /localdisk/users/panovodv/harmony/tree/trunk/working_vm/vm/thread/src/thread_native_condvar.c:55
> #8 0x40020cb2 in monitor_wait_impl (mon_ptr=0x52d03430, ms=0, nano=0,
> interruptable=1)
> at /localdisk/users/panovodv/harmony/tree/trunk/working_vm/vm/thread/src/thread_native_fat_monitor.c:189
> #9 0x400231db in thin_monitor_wait_impl (lockword_ptr=0x4240b284, ms=0,
> nano=0, interruptable=1)
> at /localdisk/users/panovodv/harmony/tree/trunk/working_vm/vm/thread/src/thread_native_thin_monitor.c:439
> ...
> Java stack is:
> The stack trace of the 0xb036d500 java thread:
> [0xb036d500] 0x52abbc8d(m): java/security/AccessController.getContext()Ljava/security/AccessControlContext;
> [0xb036d500] 0x52ac2972(m): java/lang/Thread.<init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V
> [0xb036d500] 0x52ac2390(m): java/lang/Thread.<init>(Ljava/lang/ThreadGroup;Ljava/lang/String;)V
> [0xb036d500] 0x52ac220d(m): java/lang/FinalizerThread.<init>(Z)V
> [0xb036d500] 0x52e2826c(m): java/lang/FinalizerThread.spawnBalanceThreads()V
> [0xb036d500] 0x52e27e32(m): java/lang/FinalizerThread.startFinalization(Z)V
> [0xb036d500] 0x52ac4bf3(m): java/lang/Object.notifyAll()V
> [0xb036d500] 0x52e26e75(m): java/lang/Thread.detach(Ljava/lang/Throwable;)V
> The stack trace of the 0x86ee978 java thread:
> [0x86ee978] (nil)(n): java/lang/VMThreadManager.wait(Ljava/lang/Object;JI)I
> [0x86ee978] 0x52ac46b1(m): java/lang/Object.wait()V
> [0x86ee978] 0x52ac6eae(m): java/lang/FinalizerThread.waitNewTask()V
> [0x86ee978] 0x52ac5c3d(m): java/lang/FinalizerThread.run()V
> [0x86ee978] 0x52ac4b3e(m): java/lang/Thread.runImpl()V
> The stack trace of the 0x80ba680 java thread:
> [0x80ba680] 0x52ac32ad(m): java/util/WeakHashMap.get(Ljava/lang/Object;)Ljava/lang/Object;
> [0x80ba680] 0x52abbcbb(m): java/security/AccessController.getContext()Ljava/security/AccessControlContext;
> [0x80ba680] 0x52ac2972(m): java/lang/Thread.<init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V
> [0x80ba680] 0x52e261af(m): java/lang/Thread.<init>(Ljava/lang/Runnable;)V
> [0x80ba680] 0x52ac84d8(m): ManyThreadsTest.main([Ljava/lang/String;)V
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.