jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bruno Coelho <bruno.coe...@pmelink.pt>
Subject Re: problem shuting down tomcat
Date Tue, 22 Sep 2009 15:29:38 GMT
using the kill -QUIT <pid>...

just some notes:
- I'm using OraclePersistentManager
- I'm using RMI to connect to the repository... starting it with the  
RepositoryStartupServlet (config in the web.xml) and  
RepositoryAccessServlet to access the repository using RMI.

thanks again.

cheers,

bruno coelho

Full thread dump Java HotSpot(TM) Client VM (1.5.0_20-141 mixed mode,  
sharing):

"DestroyJavaVM" prio=5 tid=0x01034a40 nid=0xb0801000 waiting on  
condition [0x00000000..0xb0800060]

"RMI ConnectionExpiration-[10.100.131.165:9999]" daemon prio=5  
tid=0x0104f1f0 nid=0x8c4400 waiting on condition  
[0xb151b000..0xb151bd90]
	at java.lang.Thread.sleep(Native Method)
	at sun.rmi.transport.tcp.TCPChannel$Reaper.run(TCPChannel.java:446)
	at java.lang.Thread.run(Thread.java:613)

"RMI TCP Connection(9)-10.100.131.165" daemon prio=5 tid=0x010356c0  
nid=0x8c3600 runnable [0xb1194000..0xb1194d90]
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
	- locked <0x2a06b4e0> (a java.io.BufferedInputStream)
	at java.io.FilterInputStream.read(FilterInputStream.java:66)
	at  
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:448)
	at sun.rmi.transport.tcp.TCPTransport 
$ConnectionHandler.run(TCPTransport.java:707)
	at java.lang.Thread.run(Thread.java:613)

"http-8180-1" daemon prio=5 tid=0x01033f30 nid=0x8bfa00 in  
Object.wait() [0xb159c000..0xb159cd90]
	at java.lang.Object.wait(Native Method)
	- waiting on <0x2a002fa8> (a org.apache.tomcat.util.net.JIoEndpoint 
$Worker)
	at java.lang.Object.wait(Object.java:474)
	at org.apache.tomcat.util.net.JIoEndpoint 
$Worker.await(JIoEndpoint.java:423)
	- locked <0x2a002fa8> (a org.apache.tomcat.util.net.JIoEndpoint$Worker)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java: 
449)
	at java.lang.Thread.run(Thread.java:613)

"RMI LeaseChecker" daemon prio=5 tid=0x01034590 nid=0x8bec00 waiting  
on condition [0xb161d000..0xb161dd90]
	at java.lang.Thread.sleep(Native Method)
	at sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:310)
	at java.lang.Thread.run(Thread.java:613)

"TP-Processor4" daemon prio=5 tid=0x010320e0 nid=0x8bb000 in  
Object.wait() [0xb1419000..0xb1419d90]
	at java.lang.Object.wait(Native Method)
	- waiting on <0x29e4ef38> (a org.apache.jk.common.ChannelSocket)
	at java.lang.Object.wait(Object.java:474)
	at org.apache.jk.common.ChannelSocket.accept(ChannelSocket.java:301)
	- locked <0x29e4ef38> (a org.apache.jk.common.ChannelSocket)
	at  
org 
.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java: 
661)
	at org.apache.jk.common.ChannelSocket 
$SocketAcceptor.runIt(ChannelSocket.java:872)
	at org.apache.tomcat.util.threads.ThreadPool 
$ControlRunnable.run(ThreadPool.java:690)
	at java.lang.Thread.run(Thread.java:613)

"http-8180-Acceptor-0" daemon prio=5 tid=0x01030860 nid=0x836e00  
waiting on condition [0xb1215000..0xb1215d90]
	at java.lang.Thread.sleep(Native Method)
	at org.apache.tomcat.util.net.JIoEndpoint 
$Acceptor.run(JIoEndpoint.java:309)
	at java.lang.Thread.run(Thread.java:613)

"RMI TCP Accept-9999" daemon prio=5 tid=0x0102d960 nid=0x92f000  
runnable [0xb1113000..0xb1113d90]
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
	- locked <0x29dcea38> (a java.net.SocksSocketImpl)
	at java.net.ServerSocket.implAccept(ServerSocket.java:450)
	at java.net.ServerSocket.accept(ServerSocket.java:421)
	at sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:340)
	at java.lang.Thread.run(Thread.java:613)

"GC Daemon" daemon prio=2 tid=0x0102d3f0 nid=0x92e200 in Object.wait()  
[0xb1092000..0xb1092d90]
	at java.lang.Object.wait(Native Method)
	- waiting on <0x29dceb50> (a sun.misc.GC$LatencyLock)
	at sun.misc.GC$Daemon.run(GC.java:100)
	- locked <0x29dceb50> (a sun.misc.GC$LatencyLock)

"RMI Reaper" prio=5 tid=0x0102cfe0 nid=0x8d2400 in Object.wait()  
[0xb1011000..0xb1011d90]
	at java.lang.Object.wait(Native Method)
	- waiting on <0x29adfdd8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:120)
	- locked <0x29adfdd8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:136)
	at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:336)
	at java.lang.Thread.run(Thread.java:613)

"RMI TCP Accept-0" daemon prio=5 tid=0x0102cc80 nid=0x8d1600 runnable  
[0xb0f90000..0xb0f90d90]
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
	- locked <0x29dcec30> (a java.net.SocksSocketImpl)
	at java.net.ServerSocket.implAccept(ServerSocket.java:450)
	at java.net.ServerSocket.accept(ServerSocket.java:421)
	at sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:340)
	at java.lang.Thread.run(Thread.java:613)

"RMI TCP Accept-0" daemon prio=5 tid=0x0100c840 nid=0x85f000 runnable  
[0xb0c8a000..0xb0c8ad90]
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
	- locked <0x29adae38> (a java.net.SocksSocketImpl)
	at java.net.ServerSocket.implAccept(ServerSocket.java:450)
	at java.net.ServerSocket.accept(ServerSocket.java:421)
	at sun.management.jmxremote.LocalRMIServerSocketFactory 
$1.accept(LocalRMIServerSocketFactory.java:31)
	at sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:340)
	at java.lang.Thread.run(Thread.java:613)

"Timer-0" daemon prio=5 tid=0x0100c480 nid=0x85e200 in Object.wait()  
[0xb0c09000..0xb0c09d90]
	at java.lang.Object.wait(Native Method)
	- waiting on <0x29adafe8> (a java.util.TaskQueue)
	at java.util.TimerThread.mainLoop(Timer.java:509)
	- locked <0x29adafe8> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Timer.java:462)

"Low Memory Detector" daemon prio=5 tid=0x01009310 nid=0x818e00  
runnable [0x00000000..0x00000000]

"CompilerThread0" daemon prio=9 tid=0x01008900 nid=0x818000 waiting on  
condition [0x00000000..0xb0b077d8]

"Signal Dispatcher" daemon prio=9 tid=0x01008420 nid=0x817200 waiting  
on condition [0x00000000..0x00000000]

"Finalizer" daemon prio=8 tid=0x01007c70 nid=0x815600 in Object.wait()  
[0xb0a05000..0xb0a05d90]
	at java.lang.Object.wait(Native Method)
	- waiting on <0x29a97508> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:120)
	- locked <0x29a97508> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:136)
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x010078b0 nid=0x813e00 in  
Object.wait() [0xb0984000..0xb0984d90]
	at java.lang.Object.wait(Native Method)
	- waiting on <0x29a97590> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:474)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
	- locked <0x29a97590> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=9 tid=0x01007010 nid=0x813000 runnable

"VM Periodic Task Thread" prio=9 tid=0x0100dae0 nid=0x84d400 waiting  
on condition

"Exception Catcher Thread" prio=10 tid=0x010019c0 nid=0x80ac00 runnable


On Sep 22, 2009, at 4:09 PM, Thomas Müller wrote:

> Hi,
>
> I think it's "kill -QUIT <pid>"
>
> Regards
> Thomas
>
> On Tue, Sep 22, 2009 at 5:03 PM, Sébastien Launay
> <sebastien.launay@anyware-tech.com> wrote:
>> Le 22/09/2009 16:46, Bruno Coelho a écrit :
>>> I don't know how to tell apart wich ones are daemons or not... I  
>>> just
>>> have the total number of thread and the total number of daemon  
>>> threads
>>> (using jconsole)...
>>> so the best I can give you is a threadump of all threads. sorry  
>>> about
>>> this.
>>
>> I do not see any thread about Jackrabbit nor Derby so this does not
>> seems to be a Jackrabbit related issue.
>>
>> Maybe, the jconsole connection creates a user thread which prevent
>> Tomcat from shutting down.
>>
>> If you are under UNIX a kill -KILL <tomcat-pid> will dump the JVM
>> stack trace with daemon flags in the output stream (generally
>> catalina.out).
>> If you are under Windows a CTRL+PAUSE in the tomcat console will
>> dump the same JVM stack trace with daemon flags but directly
>> into the console.
>>
>> You can try without jconsole connected to the application or without
>> JMX at all.
>> The dumped stack trace will normally contains more information.
>>
>> --
>> Sébastien Launay
>>


Mime
View raw message