https://issues.apache.org/bugzilla/show_bug.cgi?id=50820

           Summary: Unable to stop tomcat.
           Product: Tomcat 6
           Version: 6.0.28
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
        AssignedTo: dev@tomcat.apache.org
        ReportedBy: kni...@nhn.com


I have running nexus web application server (sonatype corp) on tomcat.

To I tried to stop tomcat, I executed "bin/catalina.sh stop". It seemed that it
would work. As a result, I could not connect tomcat.
But tomcat daemon was alive for 20 minutes like below.

# ps -ef | grep java
root      1398     1  7 20:01 pts/2    00:00:24 /usr/local/j2se/bin/java
-Djava.util.logging.config.file=/usr/local/tomcat6/conf/logging.properties
-Xms1000m -Xmx1000m -XX:+UseParallelGC -XX:+UseParallelOldGC
-XX:+DisableExplicitGC
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.endorsed.dirs=/usr/local/tomcat6/endorsed -classpath
/usr/local/tomcat6/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat6
-Dcatalina.home=/usr/local/tomcat6 -Djava.io.tmpdir=/usr/local/tomcat6/temp
org.apache.catalina.startup.Bootstrap start

So, I generated thread dump like below.
# /usr/local/j2se/bin/jstack -F -l 1398 > 2012.txt
Attaching to process ID 1398, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 19.1-b02
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
Finding object size using Printezis bits and skipping over...
#

after 5 minutes, I runned "thread dump". 
The content of two thread dump is equal.

So. I added an attachement of thread dump.
There are pattern of thread in thread dump like below

Thread 1465: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2, line=485 (Interpreted frame)
 - org.apache.tomcat.util.net.JIoEndpoint$Worker.await() @bci=8, line=458
(Interpreted frame)
 - org.apache.tomcat.util.net.JIoEndpoint$Worker.run() @bci=11, line=484
(Interpreted frame)
 - java.lang.Thread.run() @bci=11, line=662 (Interpreted frame)

Locked ownable synchronizers:
    - None




Thread 1428: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
 - java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long)
@bci=20, line=198 (Interpreted frame)
 -
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long)
@bci=68, line=2025 (Interpreted frame)
 - java.util.concurrent.DelayQueue.take() @bci=57, line=164 (Interpreted frame)
 - java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take()
@bci=4, line=609 (Interpreted frame)
 - java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take()
@bci=1, line=602 (Interpreted frame)
 - java.util.concurrent.ThreadPoolExecutor.getTask() @bci=78, line=947
(Interpreted frame)
 - java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=18, line=907
(Interpreted frame)
 - java.lang.Thread.run() @bci=11, line=662 (Interpreted frame)

Locked ownable synchronizers:
    - None


Thread 1415: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=118 (Interpreted
frame)
 - java.lang.ref.ReferenceQueue.remove() @bci=2, line=134 (Interpreted frame)
 - java.lang.ref.Finalizer$FinalizerThread.run() @bci=3, line=159 (Interpreted
frame)


* My Environment 
 jdk : 1.6.0_24
 Tomcat : 6.0.28
 linux : CentOS release 5.3 (Final)

# netstat -anp | grep java
unix  2      [ ACC ]     STREAM     LISTENING     90571504 1398/java          
/usr/local/tomcat6/temp/.java_pid1398.tmp


I tried netstat -anp and tomcat port is not listed there but still I am 
 unable to start the service. So, I had to kill by using "kill" command.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to