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/03/20 16:35:32 UTC

[jira] Commented: (HARMONY-3314) [jdktools][jpda] JDWP tests on Linux/ia32 cause intermittent DRLVM crash at exit

    [ https://issues.apache.org/jira/browse/HARMONY-3314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12482413 ] 

Ivan Popov commented on HARMONY-3314:
-------------------------------------

I still see many intermittent failures of JPDA tests because debuggee VM hangs on exit (e.g., on harmony-hdk-r520308-linux-x86-32). This often breaks jdktools tests execution on Linux.

I attached to a hung JVM process started in -Xint mode with gdb debugger and looked at stack trace. There is no problem with JDWP agent, it successfully finished in VM_DEATH callback. JVM hangs in detaching thread ate exit. Below is typical stack trace from gdb:

(gdb) i thread
  2 Thread -1216119904 (LWP 18429)  0xffffe410 in __kernel_vsyscall ()
  1 Thread -1215027520 (LWP 18428)  0xffffe410 in __kernel_vsyscall ()

(gdb) thread 2
[Switching to thread 2 (Thread -1216119904 (LWP 18429))]#0  0xffffe410 in __kernel_vsyscall ()
(gdb) where
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7b6767f in sem_wait@GLIBC_2.0 () from /lib/libpthread.so.0
#2  0xb7fc3dc7 in asynchSignalReporter (userData=0x0) at hysignal.c:474
#3  0xb7bc6d6c in thread_start_proc (thd=0x80636b8, p_args=0x80636a8)
    at .../working_vm/vm/thread/src/thread_native_basic.c:722
#4  0xb7bcdc16 in dummy_worker (opaque=0x80636b8) at threadproc/unix/thread.c:138
#5  0xb7b622ab in start_thread () from /lib/libpthread.so.0
#6  0xb7af975e in clone () from /lib/libc.so.6

(gdb) thread 1
[Switching to thread 1 (Thread -1215027520 (LWP 18428))]#0  0xffffe410 in __kernel_vsyscall ()
(gdb) where
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7ae143c in sched_yield () from /lib/libc.so.6
#2  0xb7bc64ab in hythread_yield ()
    at .../working_vm/vm/thread/src/thread_native_basic.c:341
#3  0xb6d53234 in jthread_monitor_enter (monitor=0xa48004c8)
    at .../working_vm/vm/thread/src/thread_java_monitors.c:129
#4  0xb6c25bd6 in vm_monitor_enter_default (p_obj=0xa5fcf68c)
    at .../working_vm/vm/vmcore/src/thread/mon_enter_exit.cpp:114
#5  0xb6b9f62e in vm_monitor_enter_wrapper (obj=0xa5fcf68c)
    at .../working_vm/vm/vmcore/src/interpreter/interp_imports.cpp:29
#6  0xb5d7e1ce in interpreter (frame=@0xbfe7581c)
    at .../working_vm/vm/interpreter/src/interpreter.cpp:2582
#7  0xb5d81fcc in interpreterInvoke (prevFrame=@0xbfe75bf0, method=0x834a300, args=2, obj=0xa5fcf68c, intf=false)
    at .../working_vm/vm/interpreter/src/interpreter.cpp:3383
#8  0xb5d82516 in interpreterInvokeVirtual (prevFrame=@0xbfe75bf0, method=0x834a300)
    at .../working_vm/vm/interpreter/src/interpreter.cpp:3465
#9  0xb5d82772 in Opcode_INVOKEVIRTUAL (frame=@0xbfe75bf0)
    at .../working_vm/vm/interpreter/src/interpreter.cpp:2054
#10 0xb5d7f27f in interpreter (frame=@0xbfe75bf0)
    at .../working_vm/vm/interpreter/src/interpreter.cpp:2901
#11 0xb5d80653 in interpreter_execute_method (method=0x8344bb0, return_value=0x0, args=0xbfe75d9c)
    at .../working_vm/vm/interpreter/src/interpreter.cpp:3186
#12 0xb5d64f03 in JIT_execute_method (jh=0x0, m=0x8344bb0, return_value=0x0, args=0xbfe75d9c)
    at .../working_vm/vm/interpreter/src/interp_exports.cpp:166
#13 0xb5db9136 in DrlEMImpl::executeMethod (this=0x80979e0, meth=0x8344bb0, return_value=0x0, args=0xbfe75d9c)
    at .../working_vm/vm/em/src/DrlEMImpl.cpp:539
#14 0xb5ddb850 in ExecuteMethod (meth=0x8344bb0, return_value=0x0, args=0xbfe75d9c)
    at .../working_vm/vm/em/src/em_intf.cpp:43
#15 0xb6b9d77d in vm_execute_java_method_array (method=0x8344bb0, result=0x0, args=0xbfe75d9c)
    at .../working_vm/vm/vmcore/src/jit/ini.cpp:51
#16 0xb6c45243 in run_java_detach (java_thread=0x86e07c0)
    at .../working_vm/vm/vmcore/src/thread/thread_generic.cpp:183
#17 0xb6c4537c in vm_detach (java_thread=0x86e07c0)
    at .../working_vm/vm/vmcore/src/thread/thread_generic.cpp:279
#18 0xb6d524b7 in jthread_detach (java_thread=0x86e07c0)
    at .../working_vm/vm/thread/src/thread_java_basic.c:292
#19 0xb6c595d2 in vm_destroy (java_vm=0x80763d0, java_thread=0x86e07c0)
    at .../working_vm/vm/vmcore/src/init/vm_shutdown.cpp:206
#20 0xb6bbf2a6 in DestroyJavaVM (vm=0x80763d0)
    at .../working_vm/vm/vmcore/src/jni/jni.cpp:1459
#21 0x08049b05 in invocation (portLibrary=0xbfe7617c, argc=8, argv=0xbfe765c4, handle=134642120, version=65540,
    ignoreUnrecognized=1 '\001', mainClass=0xbfe76b47 "org.apache.harmony.jpda.tests.jdwp.Events.EventDebuggee",
    classArg=7,
    propertiesFileName=0x80678d8 ".../working_jdktools/deploy/jdk/jre/bin/default/harmonyvm.properties", isStandaloneJar=0, vmdllsubdir=0xbfe75fb6 "default") at ../shared/main.c:722
#22 0x08049096 in gpProtectedMain (args=0xbfe7615c) at ../shared/main.c:360
#23 0x0804b352 in signalProtectedMain (portLibrary=0xbfe7617c, arg=0xbfe7615c) at ../shared/cmain.c:80
#24 0xb7fc3a98 in hysig_protect (portLibrary=0xbfe7617c, fn=0x804b341 <signalProtectedMain>, fn_arg=0xbfe7615c,
    handler=0x804b1b8 <genericSignalHandler>, handler_arg=0x0, flags=124, result=0xbfe76158) at hysignal.c:283
#25 0x0804b440 in main (argc=8, argv=0xbfe765c4, envp=0xbfe765e8) at ../shared/cmain.c:105

(gdb) print stack_dump()
STDERR>   java/lang/ThreadGroup.remove(Ljava/lang/Thread;)V (ThreadGroup.java:395)
STDERR>   java/lang/Thread.detach(Ljava/lang/Throwable;)V (Thread.java:774)


> [jdktools][jpda] JDWP tests on Linux/ia32 cause intermittent DRLVM crash at exit
> --------------------------------------------------------------------------------
>
>                 Key: HARMONY-3314
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3314
>             Project: Harmony
>          Issue Type: Bug
>          Components: JDK
>         Environment: Linux/ia32, Harmony-jdk-r514598
>            Reporter: Ivan Popov
>
> Many JDWP tests run long time on Linux because DRLVM intermittently crashed at exit.
> For example, the following test
>   org.apache.harmony.jpda.tests.jdwp.Events.VMDeathTest
> Here is typical diagnostics in the test output:
> Waiting for debuggee exit
> STDERR> SIGSEGV in VM code.
> STDERR> Stack trace:
> STDERR> 	1: ?? (??:-1)
> STDERR> addr2line: '[heap]': No such file
> Ignoring exception in ProcessWaiter thread interrupted: java.lang.InterruptedException
> # ERROR: Enforced debuggee termination
> To reproduce this failure:
> 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 run particular test:
>     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.Events.VMDeathTest
> 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.Events.VMDeathTest

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