Process.exec() hung on Windows, how to tell what happened from dmp file?
Dawid Weiss
dawid.weiss at gmail.com
Tue Aug 7 08:14:20 UTC 2012
Hi everyone,
Seems like the right list to ask, but redirect me if there's a better
place, please.
I have a Java process that forks a process and waits for it. When
repeatedly running on:
Windows (64 bit)
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)
it once hung on:
"pool-10-thread-1" prio=6 tid=0x000000000a31b800 nid=0x1964 runnable
[0x000000000a49e000]
java.lang.Thread.State: RUNNABLE
at java.lang.ProcessImpl.waitForInterruptibly(Native Method)
at java.lang.ProcessImpl.waitFor(ProcessImpl.java:252)
Interestingly, the forked process was not visible to jps, jstack or
any other tools. Neither could it be killed using procexp. I've
created a mini and full dump file to see where it actually was and
what happened but I don't know the windows toolchain enough to be able
to analyze it. What I did get to is load windbg and a dump threads
from a full dump:
0:000> ~*kL
WARNING: Teb 0 pointer is NULL - defaulting to 00000000`7ffde000
WARNING: 00000000`7ffde000 does not appear to be a TEB
. 0 Id: ec8.e88 Suspend: -1 Teb: 00000000`7ffde000 Unfrozen
WARNING: Teb 0 pointer is NULL - defaulting to 00000000`7ffde000
WARNING: 00000000`7ffde000 does not appear to be a TEB
Child-SP RetAddr Call Site
00000000`06d5fb48 00000000`7753418b ntdll!NtTerminateProcess+0xa
00000000`06d5fb50 00000000`74320cf5 ntdll!RtlExitUserProcess+0x9b
*** ERROR: Symbol file could not be found. Defaulted to export
symbols for jvm.dll -
00000000`06d5fb80 00000000`6c4e3c75 msvcr100!get_pgmptr+0x249
00000000`06d5fbf0 00000000`6c514d85 jvm!JVM_ResolveClass+0x19d25
00000000`06d5fc20 00000000`6c513db1 jvm!JVM_ResolveClass+0x4ae35
00000000`06d5fc50 00000000`6c514183 jvm!JVM_ResolveClass+0x49e61
00000000`06d5fcc0 00000000`6c51464e jvm!JVM_ResolveClass+0x4a233
00000000`06d5fd30 00000000`6c54556e jvm!JVM_ResolveClass+0x4a6fe
00000000`06d5fd90 00000000`74321db7 jvm!JVM_FindSignal+0x633e
00000000`06d5fdd0 00000000`74321e53 msvcr100!endthreadex+0x43
*** ERROR: Symbol file could not be found. Defaulted to export
symbols for kernel32.dll -
00000000`06d5fe00 00000000`7740652d msvcr100!endthreadex+0xdf
00000000`06d5fe30 00000000`7753c521 kernel32!BaseThreadInitThunk+0xd
00000000`06d5fe60 00000000`00000000 ntdll!RtlUserThreadStart+0x21
This was a permanent state, lasted a few hours. Any help decoding
what's happened will be greatly appreciated.
Dawid
More information about the core-libs-dev
mailing list