I'm seeing a pretty consistent issue when stopping Tomcat6, when running as
a Windows service.
Repro:
From the cmd prompt type
net stop tomcat6
Results:
The Apache Tomcat service is stopping........
The Apache Tomcat service could not be stopped.
Notes:
1. Platform details:
a. Windows 2008 Server SP1 (64-bit)
b. Tomcat 6 build 18 (both with/without the native DLL = same issue)
c. JRE 1.6.0_12
2. I could find no events nor tomcat/catalina logs with a hint as to
root cause, nor did I bear fruit with a search through the FAQs, Google,
etc.
3. I tried to enable verbose tomcat logging as per
http://tomcat.apache.org/tomcat-6.0-doc/logging.html but when the issue
occurs, the pertinent info isn't as yet written to disk, since it appears
log4j flushes only during the log rollover.
4. The only workaround I have at this point is to kill the tomcat6.exe
process manually.
5. A thread dump is below if that helps.
Has anyone seen this before?
Thanks,
Matt
Java HotSpot(TM) 64-Bit Server VM[nyc-bvtsp-tom:5005] (Suspended)
Daemon Thread [http-443-1] (Suspended)
Object.wait(long) line: not available [native method]
JIoEndpoint$Worker(Object).wait() line: 485
JIoEndpoint$Worker.await() line: 416
JIoEndpoint$Worker.run() line: 442
Thread.run() line: 619
Daemon Thread [http-80-1] (Suspended)
Object.wait(long) line: not available [native method]
JIoEndpoint$Worker(Object).wait() line: 485
JIoEndpoint$Worker.await() line: 416
JIoEndpoint$Worker.run() line: 442
Thread.run() line: 619
Daemon Thread [http-443-Acceptor-0] (Suspended)
Thread.sleep(long) line: not available [native method]
JIoEndpoint$Acceptor.run() line: 302
Thread.run() line: 619
Daemon Thread [http-80-Acceptor-0] (Suspended)
Thread.sleep(long) line: not available [native method]
JIoEndpoint$Acceptor.run() line: 302
Thread.run() line: 619
Daemon System Thread [Attach Listener] (Suspended)
Daemon System Thread [Signal Dispatcher] (Suspended)
Daemon System Thread [Finalizer] (Suspended)
Object.wait(long) line: not available [native method]
ReferenceQueue<T>.remove(long) line: 116
ReferenceQueue<T>.remove() line: 132
Finalizer$FinalizerThread.run() line: 159
Daemon System Thread [Reference Handler] (Suspended)
Object.wait(long) line: not available [native method]
Reference$Lock(Object).wait() line: 485
Reference$ReferenceHandler.run() line: 116
Thread [main] (Suspended)