Process.exec() hung on Windows, how to tell what happened from dmp file? (original) (raw)

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 000000007ffde000 WARNING: 000000007ffde000 does not appear to be a TEB . 0 Id: ec8.e88 Suspend: -1 Teb: 000000007ffde000 Unfrozen WARNING: Teb 0 pointer is NULL - defaulting to 000000007ffde000 WARNING: 000000007ffde000 does not appear to be a TEB Child-SP RetAddr Call Site 0000000006d5fb48 000000007753418b ntdll!NtTerminateProcess+0xa 0000000006d5fb50 0000000074320cf5 ntdll!RtlExitUserProcess+0x9b *** ERROR: Symbol file could not be found. Defaulted to export symbols for jvm.dll - 0000000006d5fb80 000000006c4e3c75 msvcr100!get_pgmptr+0x249 0000000006d5fbf0 000000006c514d85 jvm!JVM_ResolveClass+0x19d25 0000000006d5fc20 000000006c513db1 jvm!JVM_ResolveClass+0x4ae35 0000000006d5fc50 000000006c514183 jvm!JVM_ResolveClass+0x49e61 0000000006d5fcc0 000000006c51464e jvm!JVM_ResolveClass+0x4a233 0000000006d5fd30 000000006c54556e jvm!JVM_ResolveClass+0x4a6fe 0000000006d5fd90 0000000074321db7 jvm!JVM_FindSignal+0x633e 0000000006d5fdd0 0000000074321e53 msvcr100!endthreadex+0x43 *** ERROR: Symbol file could not be found. Defaulted to export symbols for kernel32.dll - 0000000006d5fe00 000000007740652d msvcr100!endthreadex+0xdf 0000000006d5fe30 000000007753c521 kernel32!BaseThreadInitThunk+0xd 0000000006d5fe60 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