I looked at it( gc.LOS hang ) for a while and my findings are somewhat similar to Alexey's. The problem occurs for me all the time irrespective of where the trace statement apprears( ref: Weldon's comment ). On breaking in, the call stack at hang is:
ntdll.dll!7c90eb94() ntdll.dll!7c90ea53() kernel32.dll!7c81e956()
hythr.dll!apr_winapi_SwitchToThread() Line 219 + 0x2b C
hythr.dll!apr_thread_yield() Line 195 C hythr.dll!hythread_yield() Line 297 C hythr.dll!wait_safe_region_event(HyThread * thread=0x0e80d408) Line 227 C hythr.dll!hythread_suspend_all(HyThread * * t=0x036af7b0, HyThreadGroup * group=0x00000000) Line 401 + 0x9 C harmonyvm.dll!stop_the_world_root_set_enumeration() Line 89 + 0xb C++ harmonyvm.dll!vm_enumerate_root_set_all_threads() Line 143 C++ gc.dll!enumerate_universe() Line 127 + 0x8 C++ gc.dll!copy_gc(int size=4108) Line 326 + 0x16 C++ gc.dll!select_gc(int size=4108) Line 96 + 0x9 C++ gc.dll!gc_alloc(unsigned int in_size=4108, unsigned int ah=21234656, void * thread_pointer=0x0102c4cc) Line 238 + 0x9 C++ harmonyvm.dll!vm_new_vector_using_vtable_and_thread_pointer(int length=4096, unsigned int vector_handle=21234656, void * tp=0x0102c4cc) Line 233 + 0x14 C++ harmonyvm.dll!vm_rt_new_vector_using_vtable_and_thread_pointer(int length=4096, unsigned int vector_handle=21234656, void * tp=0x0102c4cc) Line 111 + 0x11 C++ 01341775() harmonyvm.dll!set_unwindable(bool unwindable=true) Line 140 + 0xd C++ ntdll.dll!7c90e591() ntdll.dll!7c90110a() hythr.dll!apr_thread_mutex_unlock(apr_thread_mutex_t * mutex=0x014ddba6) Line 117 C gc.dll!GC_VTable_Info::is_finalizible() Line 121 + 0x16 C++ 207ea704() jitrino.dll!Jitrino::Jet::rt_h_i64_a(__int64 v1=502568517412, __int64 v2=0, JavaByteCodes op=OPCODE_NOP) Line 211 + 0x2f C++ ntdll.dll!7c9106eb() ntdll.dll!7c9011a7() ntdll.dll!7c96cde9() ntdll.dll!7c918e94() ntdll.dll!7c918f87() ntdll.dll!7c90e591() ntdll.dll!7c926abe() ntdll.dll!7c96cde9() ntdll.dll!7c96e0f0() ntdll.dll!7c96e0d4() ntdll.dll!7c918dfa() ntdll.dll!7c90d625() harmonyvm.dll!initialize_arg_list_iterator(const char * descr=0x0057c530) Line 52 + 0x7 C++ harmonyvm.dll!Method::get_argument_list() Line 237 + 0x11 C++ 036afd5c() harmonyvm.dll!JIT_execute_method_default(void * jit=0x00000000, _jmethodID * methodID=0x02686c40, jvalue * return_value=0x00000000, jvalue * args=0x036afeac) Line 199 C++ em.dll!DrlEMImpl::executeMethod(_jmethodID * meth=0x02686c40, jvalue * return_value=0x00000000, jvalue * args=0x036afeac) Line 488 + 0x16 C++ em.dll!ExecuteMethod(_jmethodID * meth=0x02686c40, jvalue * return_value=0x00000000, jvalue * args=0x036afeac) Line 42 + 0x21 C++ harmonyvm.dll!vm_execute_java_method_array(_jmethodID * method=0x02686c40, jvalue * result=0x00000000, jvalue * args=0x036afeac) Line 58 + 0x1c C++ harmonyvm.dll!call_method_no_ref_result(JNIEnv_External * env=0x0084e958, _jobject * obj=0x02d7e1a0, _jmethodID * methodID=0x02686c40, jvalue * args=0x00000000, jvalue * result=0x00000000, int non_virtual=0) Line 164 + 0x11 C++ harmonyvm.dll!CallVoidMethodA(JNIEnv_External * env=0x0084e958, _jobject * obj=0x02d7e1a0, _jmethodID * methodID=0x02686c40, jvalue * args=0x00000000) Line 199 + 0x19 C++ harmonyvm.dll!wrapper_proc(void * arg=0x02d74078) Line 98 + 0x27 C hythr.dll!thread_start_proc(apr_thread_t * thd=0x0042c180, void * p_args=0x0042c0d8) Line 704 + 0xf C hythr.dll!dummy_worker(void * opaque=0x0042c180) Line 79 + 0x13 C hythr.dll!_threadstartex(void * ptd=0x0039f3a8) Line 241 + 0xd C kernel32.dll!7c80b50b() gc.dll!Partial_Reveal_Object::obj_info() Line 148 + 0x3d C++ kernel32.dll!7c8399f3() There seems to be some kind of endless loop in apr_winapi_switchtothread() ,and I suspect that the problem may be quite similar to Alexey's findings. I plan to investigate, but at this moment I am too broken with several tests failing before I can even get to this point. Thanks, Rana ****************************************************************
On 9/25/06, Alexey Varlamov <[EMAIL PROTECTED]> wrote: > > Folks, > > You may find interesting investigations in HARMONY-1519 [1] of bugs in > patched APR condition variables on Win32, which affect wait() > behavior. > > [1]http://issues.apache.org/jira/browse/HARMONY-1519?page=all > >
