Petals ESB Container

Deadlock when stopping the Petals ESB container through the command 'stop'

Details

  • Type: Bug Bug
  • Status: Resolved Resolved
  • Priority: Major Major
  • Resolution: Duplicate
  • Affects Version/s: 4.2.0
  • Fix Version/s: 4.2.2
  • Component/s: Administration, Launcher
  • Security Level: Public
  • Description:

    When using the command 'petals-esb.sh stop' to stop a Petals ESB container, the container seems to be correctly stopped but its process is not finished, as if a deadlock occurs.

  • Environment:
    -

Issue Links

Activity

Hide
Christophe DENEUX added a comment - Mon, 7 Oct 2013 - 17:10:01 +0200

The thread dump:

2013-10-07 16:45:31
Full thread dump Java HotSpot(TM) Server VM (20.45-b01 mixed mode):

"Attach Listener" daemon prio=10 tid=0x617fd400 nid=0x45df runnable [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Petals Shutdown Hook" prio=10 tid=0x602f4000 nid=0x45cf in Object.wait() [0x6000b000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x7380fc40> (a org.objectweb.fractal.julia.generated.Cbd2013d7_0)
	at java.lang.Object.wait(Object.java:485)
	at org.objectweb.fractal.julia.generated.Cbd2013d7_0.incrementFcInvocationCounter(BasicControllerMixin.java:4216)
	at org.objectweb.fractal.julia.generated.Ca3102526_0.stopTraffic(INTERCEPTOR[Transporter])
	- locked <0x7380fc40> (a org.objectweb.fractal.julia.generated.Cbd2013d7_0)
	at org.objectweb.fractal.julia.generated.Ce8f8611_0.stopTraffic(INTERFACE[Transporter])
	at org.ow2.petals.microkernel.server.PetalsServerImpl.stopPetalsComposite(PetalsServerImpl.java:453)
	at org.ow2.petals.microkernel.server.PetalsServerImpl.stop(PetalsServerImpl.java:247)
	at org.ow2.petals.microkernel.server.PetalsServerImpl$ShutdownHook.run(PetalsServerImpl.java:153)

"RMI TCP Connection(idle)" daemon prio=10 tid=0x09b1e000 nid=0x45c9 waiting on condition [0x6005c000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x73705460> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:955)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:662)

"RMI TCP Connection(idle)" daemon prio=10 tid=0x0a929400 nid=0x45c5 waiting on condition [0x600ad000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x73705460> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:955)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:662)

"btpool1-0 - Acceptor0 SelectChannelConnector@0.0.0.0:7600" prio=10 tid=0x6268fc00 nid=0x44e2 runnable [0x60680000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
	at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)
	at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
	- locked <0xa0904d38> (a sun.nio.ch.Util$2)
	- locked <0xa0904d28> (a java.util.Collections$UnmodifiableSet)
	- locked <0xa09048f8> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
	at org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:406)
	at org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:166)
	at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:124)
	at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:537)
	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

"JotmClock" daemon prio=10 tid=0x602bdc00 nid=0x44e0 waiting on condition [0x60722000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(Native Method)
	at org.objectweb.jotm.TimerManager.clock(TimerManager.java:169)
	at org.objectweb.jotm.Clock.run(TimerManager.java:65)

"JotmBatch" daemon prio=10 tid=0x626c8c00 nid=0x44df in Object.wait() [0x60773000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x73c13160> (a java.util.Vector)
	at java.lang.Object.wait(Object.java:485)
	at org.objectweb.jotm.TimerManager.batch(TimerManager.java:221)
	- locked <0x73c13160> (a java.util.Vector)
	at org.objectweb.jotm.Batch.run(TimerManager.java:87)

"RMI TCP Accept-0" daemon prio=10 tid=0x6028e800 nid=0x44de runnable [0x607c4000]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
	- locked <0x73bec5e8> (a java.net.SocksSocketImpl)
	at java.net.ServerSocket.implAccept(ServerSocket.java:462)
	at java.net.ServerSocket.accept(ServerSocket.java:430)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
	at java.lang.Thread.run(Thread.java:662)

"btpool0-0 - Acceptor0 SelectChannelConnector@0.0.0.0:7900" prio=10 tid=0x6014f800 nid=0x44db runnable [0x61d89000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
	at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)
	at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
	- locked <0x73bf9008> (a sun.nio.ch.Util$2)
	- locked <0x73bf8ff8> (a java.util.Collections$UnmodifiableSet)
	- locked <0x73bf8b98> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
	at org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:406)
	at org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:166)
	at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:124)
	at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:537)
	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

"HSQLDB Timer @1da691a" daemon prio=10 tid=0x602a9000 nid=0x44cd in Object.wait() [0x61dda000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x7398fa78> (a org.hsqldb.lib.HsqlTimer$TaskQueue)
	at org.hsqldb.lib.HsqlTimer$TaskQueue.park(Unknown Source)
	- locked <0x7398fa78> (a org.hsqldb.lib.HsqlTimer$TaskQueue)
	at org.hsqldb.lib.HsqlTimer.nextTask(Unknown Source)
	- locked <0x7398fa78> (a org.hsqldb.lib.HsqlTimer$TaskQueue)
	at org.hsqldb.lib.HsqlTimer$TaskRunner.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:662)

"RMI TCP Connection(idle)" daemon prio=10 tid=0x0a599c00 nid=0x44ca waiting on condition [0x609fe000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x73705460> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:955)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:662)

"RMI Scheduler(0)" daemon prio=10 tid=0x617b5800 nid=0x44c9 waiting on condition [0x60bad000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x73948870> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
	at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:957)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:662)

"RMI RenewClean-[192.168.1.62:7700]" daemon prio=10 tid=0x612f3c00 nid=0x44c8 in Object.wait() [0x60bfe000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x739787f8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	- locked <0x739787f8> (a java.lang.ref.ReferenceQueue$Lock)
	at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516)
	at java.lang.Thread.run(Thread.java:662)

"RMI TCP Connection(idle)" daemon prio=10 tid=0x099fdc00 nid=0x44c7 waiting on condition [0x608b7000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x73705460> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:955)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:662)

"GC Daemon" daemon prio=10 tid=0x621cdc00 nid=0x44c6 in Object.wait() [0x60908000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x73823d30> (a sun.misc.GC$LatencyLock)
	at sun.misc.GC$Daemon.run(GC.java:100)
	- locked <0x73823d30> (a sun.misc.GC$LatencyLock)

"RMI Reaper" prio=10 tid=0x61cb5000 nid=0x44c5 in Object.wait() [0x60959000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x73823d38> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	- locked <0x73823d38> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
	at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:333)
	at java.lang.Thread.run(Thread.java:662)

"RMI TCP Accept-7700" daemon prio=10 tid=0x6172c000 nid=0x44c3 runnable [0x60b50000]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
	- locked <0x736ec950> (a java.net.SocksSocketImpl)
	at java.net.ServerSocket.implAccept(ServerSocket.java:462)
	at java.net.ServerSocket.accept(ServerSocket.java:430)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
	at java.lang.Thread.run(Thread.java:662)

"Low Memory Detector" daemon prio=10 tid=0xb679ac00 nid=0x44c1 runnable [0x00000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=10 tid=0xb6799000 nid=0x44c0 waiting on condition [0x00000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=10 tid=0xb6797000 nid=0x44bf waiting on condition [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0xb6795400 nid=0x44be runnable [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=10 tid=0xb6786c00 nid=0x44bd in Object.wait() [0x62be4000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x7370dbe8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	- locked <0x7370dbe8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:171)

"Reference Handler" daemon prio=10 tid=0xb6785400 nid=0x44bc in Object.wait() [0x62f7d000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x7370dba0> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:485)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
	- locked <0x7370dba0> (a java.lang.ref.Reference$Lock)

"main" prio=10 tid=0xb6705c00 nid=0x44b8 in Object.wait() [0xb6911000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x9ed3a760> (a org.ow2.petals.microkernel.server.PetalsServerImpl$ShutdownHook)
	at java.lang.Thread.join(Thread.java:1186)
	- locked <0x9ed3a760> (a org.ow2.petals.microkernel.server.PetalsServerImpl$ShutdownHook)
	at java.lang.Thread.join(Thread.java:1239)
	at java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:79)
	at java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:24)
	at java.lang.Shutdown.runHooks(Shutdown.java:79)
	at java.lang.Shutdown.sequence(Shutdown.java:123)
	at java.lang.Shutdown.exit(Shutdown.java:168)
	- locked <0x638a44b0> (a java.lang.Class for java.lang.Shutdown)
	at java.lang.Runtime.exit(Runtime.java:90)
	at java.lang.System.exit(System.java:904)
	at org.ow2.petals.launcher.PetalsLauncher.main(PetalsLauncher.java:345)

"VM Thread" prio=10 tid=0xb6781c00 nid=0x44bb runnable 

"GC task thread#0 (ParallelGC)" prio=10 tid=0xb670d000 nid=0x44b9 runnable 

"GC task thread#1 (ParallelGC)" prio=10 tid=0xb670e800 nid=0x44ba runnable 

"VM Periodic Task Thread" prio=10 tid=0xb679c800 nid=0x44c2 waiting on condition 

JNI global references: 1444

After several tests:

  1. The command 'petals-esb.sh stop' realizes a stop
  2. Next, the shutdown hook is launched ...
  3. ... and realize a new stop because it does not detect that the Fractal composite 'Petals' is stopped.
    Their is no deadlock. The 2nd stop invoke the method "stopTraffic" on components already stop by the first stop.
Show
Christophe DENEUX added a comment - Mon, 7 Oct 2013 - 17:10:01 +0200 The thread dump:
2013-10-07 16:45:31
Full thread dump Java HotSpot(TM) Server VM (20.45-b01 mixed mode):

"Attach Listener" daemon prio=10 tid=0x617fd400 nid=0x45df runnable [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Petals Shutdown Hook" prio=10 tid=0x602f4000 nid=0x45cf in Object.wait() [0x6000b000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x7380fc40> (a org.objectweb.fractal.julia.generated.Cbd2013d7_0)
	at java.lang.Object.wait(Object.java:485)
	at org.objectweb.fractal.julia.generated.Cbd2013d7_0.incrementFcInvocationCounter(BasicControllerMixin.java:4216)
	at org.objectweb.fractal.julia.generated.Ca3102526_0.stopTraffic(INTERCEPTOR[Transporter])
	- locked <0x7380fc40> (a org.objectweb.fractal.julia.generated.Cbd2013d7_0)
	at org.objectweb.fractal.julia.generated.Ce8f8611_0.stopTraffic(INTERFACE[Transporter])
	at org.ow2.petals.microkernel.server.PetalsServerImpl.stopPetalsComposite(PetalsServerImpl.java:453)
	at org.ow2.petals.microkernel.server.PetalsServerImpl.stop(PetalsServerImpl.java:247)
	at org.ow2.petals.microkernel.server.PetalsServerImpl$ShutdownHook.run(PetalsServerImpl.java:153)

"RMI TCP Connection(idle)" daemon prio=10 tid=0x09b1e000 nid=0x45c9 waiting on condition [0x6005c000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x73705460> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:955)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:662)

"RMI TCP Connection(idle)" daemon prio=10 tid=0x0a929400 nid=0x45c5 waiting on condition [0x600ad000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x73705460> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:955)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:662)

"btpool1-0 - Acceptor0 SelectChannelConnector@0.0.0.0:7600" prio=10 tid=0x6268fc00 nid=0x44e2 runnable [0x60680000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
	at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)
	at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
	- locked <0xa0904d38> (a sun.nio.ch.Util$2)
	- locked <0xa0904d28> (a java.util.Collections$UnmodifiableSet)
	- locked <0xa09048f8> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
	at org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:406)
	at org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:166)
	at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:124)
	at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:537)
	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

"JotmClock" daemon prio=10 tid=0x602bdc00 nid=0x44e0 waiting on condition [0x60722000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(Native Method)
	at org.objectweb.jotm.TimerManager.clock(TimerManager.java:169)
	at org.objectweb.jotm.Clock.run(TimerManager.java:65)

"JotmBatch" daemon prio=10 tid=0x626c8c00 nid=0x44df in Object.wait() [0x60773000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x73c13160> (a java.util.Vector)
	at java.lang.Object.wait(Object.java:485)
	at org.objectweb.jotm.TimerManager.batch(TimerManager.java:221)
	- locked <0x73c13160> (a java.util.Vector)
	at org.objectweb.jotm.Batch.run(TimerManager.java:87)

"RMI TCP Accept-0" daemon prio=10 tid=0x6028e800 nid=0x44de runnable [0x607c4000]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
	- locked <0x73bec5e8> (a java.net.SocksSocketImpl)
	at java.net.ServerSocket.implAccept(ServerSocket.java:462)
	at java.net.ServerSocket.accept(ServerSocket.java:430)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
	at java.lang.Thread.run(Thread.java:662)

"btpool0-0 - Acceptor0 SelectChannelConnector@0.0.0.0:7900" prio=10 tid=0x6014f800 nid=0x44db runnable [0x61d89000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
	at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)
	at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
	- locked <0x73bf9008> (a sun.nio.ch.Util$2)
	- locked <0x73bf8ff8> (a java.util.Collections$UnmodifiableSet)
	- locked <0x73bf8b98> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
	at org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:406)
	at org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:166)
	at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:124)
	at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:537)
	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

"HSQLDB Timer @1da691a" daemon prio=10 tid=0x602a9000 nid=0x44cd in Object.wait() [0x61dda000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x7398fa78> (a org.hsqldb.lib.HsqlTimer$TaskQueue)
	at org.hsqldb.lib.HsqlTimer$TaskQueue.park(Unknown Source)
	- locked <0x7398fa78> (a org.hsqldb.lib.HsqlTimer$TaskQueue)
	at org.hsqldb.lib.HsqlTimer.nextTask(Unknown Source)
	- locked <0x7398fa78> (a org.hsqldb.lib.HsqlTimer$TaskQueue)
	at org.hsqldb.lib.HsqlTimer$TaskRunner.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:662)

"RMI TCP Connection(idle)" daemon prio=10 tid=0x0a599c00 nid=0x44ca waiting on condition [0x609fe000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x73705460> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:955)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:662)

"RMI Scheduler(0)" daemon prio=10 tid=0x617b5800 nid=0x44c9 waiting on condition [0x60bad000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x73948870> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
	at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:957)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:662)

"RMI RenewClean-[192.168.1.62:7700]" daemon prio=10 tid=0x612f3c00 nid=0x44c8 in Object.wait() [0x60bfe000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x739787f8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	- locked <0x739787f8> (a java.lang.ref.ReferenceQueue$Lock)
	at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516)
	at java.lang.Thread.run(Thread.java:662)

"RMI TCP Connection(idle)" daemon prio=10 tid=0x099fdc00 nid=0x44c7 waiting on condition [0x608b7000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x73705460> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
	at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
	at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
	at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:955)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
	at java.lang.Thread.run(Thread.java:662)

"GC Daemon" daemon prio=10 tid=0x621cdc00 nid=0x44c6 in Object.wait() [0x60908000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x73823d30> (a sun.misc.GC$LatencyLock)
	at sun.misc.GC$Daemon.run(GC.java:100)
	- locked <0x73823d30> (a sun.misc.GC$LatencyLock)

"RMI Reaper" prio=10 tid=0x61cb5000 nid=0x44c5 in Object.wait() [0x60959000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x73823d38> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	- locked <0x73823d38> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
	at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:333)
	at java.lang.Thread.run(Thread.java:662)

"RMI TCP Accept-7700" daemon prio=10 tid=0x6172c000 nid=0x44c3 runnable [0x60b50000]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
	- locked <0x736ec950> (a java.net.SocksSocketImpl)
	at java.net.ServerSocket.implAccept(ServerSocket.java:462)
	at java.net.ServerSocket.accept(ServerSocket.java:430)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
	at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
	at java.lang.Thread.run(Thread.java:662)

"Low Memory Detector" daemon prio=10 tid=0xb679ac00 nid=0x44c1 runnable [0x00000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=10 tid=0xb6799000 nid=0x44c0 waiting on condition [0x00000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=10 tid=0xb6797000 nid=0x44bf waiting on condition [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0xb6795400 nid=0x44be runnable [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=10 tid=0xb6786c00 nid=0x44bd in Object.wait() [0x62be4000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x7370dbe8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	- locked <0x7370dbe8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:171)

"Reference Handler" daemon prio=10 tid=0xb6785400 nid=0x44bc in Object.wait() [0x62f7d000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x7370dba0> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:485)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
	- locked <0x7370dba0> (a java.lang.ref.Reference$Lock)

"main" prio=10 tid=0xb6705c00 nid=0x44b8 in Object.wait() [0xb6911000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x9ed3a760> (a org.ow2.petals.microkernel.server.PetalsServerImpl$ShutdownHook)
	at java.lang.Thread.join(Thread.java:1186)
	- locked <0x9ed3a760> (a org.ow2.petals.microkernel.server.PetalsServerImpl$ShutdownHook)
	at java.lang.Thread.join(Thread.java:1239)
	at java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:79)
	at java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:24)
	at java.lang.Shutdown.runHooks(Shutdown.java:79)
	at java.lang.Shutdown.sequence(Shutdown.java:123)
	at java.lang.Shutdown.exit(Shutdown.java:168)
	- locked <0x638a44b0> (a java.lang.Class for java.lang.Shutdown)
	at java.lang.Runtime.exit(Runtime.java:90)
	at java.lang.System.exit(System.java:904)
	at org.ow2.petals.launcher.PetalsLauncher.main(PetalsLauncher.java:345)

"VM Thread" prio=10 tid=0xb6781c00 nid=0x44bb runnable 

"GC task thread#0 (ParallelGC)" prio=10 tid=0xb670d000 nid=0x44b9 runnable 

"GC task thread#1 (ParallelGC)" prio=10 tid=0xb670e800 nid=0x44ba runnable 

"VM Periodic Task Thread" prio=10 tid=0xb679c800 nid=0x44c2 waiting on condition 

JNI global references: 1444
After several tests:
  1. The command 'petals-esb.sh stop' realizes a stop
  2. Next, the shutdown hook is launched ...
  3. ... and realize a new stop because it does not detect that the Fractal composite 'Petals' is stopped. Their is no deadlock. The 2nd stop invoke the method "stopTraffic" on components already stop by the first stop.
Hide
Christophe DENEUX added a comment - Wed, 9 Oct 2013 - 15:40:45 +0200

The same problem occurs using the JVisualVM to stop the container the MBean PetalsAdmin

Show
Christophe DENEUX added a comment - Wed, 9 Oct 2013 - 15:40:45 +0200 The same problem occurs using the JVisualVM to stop the container the MBean PetalsAdmin
Hide
Christophe DENEUX added a comment - Wed, 9 Oct 2013 - 16:00:00 +0200

The states of Fractal components at the 2nd stop are the following on:

- Petals is STARTED
	- ConfigurationServiceImpl is STOPPED
	- Communication is STARTED
		- JNDIAgentServiceImpl is STOPPED
		- JNDIServiceImpl is STOPPED
		- agent-jmx is STOPPED
		- RMIConnectorImpl is STOPPED
		- JMXServiceImpl is STOPPED
		- RemoteCheckerClientImpl is STOPPED
		- TopologyServiceImpl is STOPPED
	- System is STARTED
		- PersistenceServiceImpl is STOPPED
		- RepositoryServiceImpl is STOPPED
		- SystemStateServiceImpl is STOPPED
		- ClassLoaderServiceImpl is STOPPED
		- TransactionServiceImpl is STOPPED
		- LoggingServiceImpl is STOPPED
		- LoggingServiceMBeanImpl is STOPPED
	- ExtensionsManager is STARTED
		- InstallationExtensionsManagerImpl is STOPPED
		- ExtensionsManagerImpl is STOPPED
	- JBI-Management is STARTED
		- AdminServiceImpl is STOPPED
		- InstallationServiceImpl is STOPPED
		- DeploymentServiceImpl is STOPPED
		- ComponentInstallationServiceImpl is STOPPED
		- AtomicDeploymentServiceImpl is STOPPED
		- MBeanNameBuilderImpl is STOPPED
	- PetalsAdminServiceImpl is STOPPED
	- JBI-Messaging is STARTED
		- EndpointRegistryImpl is STOPPED
		- RouterMonitorServiceImpl is STOPPED
		- RouterServiceImpl is STOPPED
		- FlowControllerModule is STOPPED
		- FlowFilterModule is STOPPED
		- PriorityOrdererModule is STOPPED
		- TransportResolverModule is STOPPED
		- EndpointResolverModule is STOPPED
		- ExchangeCheckerClientImpl is STOPPED
	- Transporter is STARTED
		- LocalTransporter is STOPPED
		- LocalTransporterMonitoring is STOPPED
		- TcpTransporter is STOPPED
		- NioTransportProtocol is STARTED
			- NioSelectorAgent is STOPPED
			- NioServerAgent is STOPPED
			- NioClientObjectPool is STOPPED
	- Container is STARTED
		- ContainerServiceImpl is STOPPED

Some composites are not stop !!!! ?????

Show
Christophe DENEUX added a comment - Wed, 9 Oct 2013 - 16:00:00 +0200 The states of Fractal components at the 2nd stop are the following on:
- Petals is STARTED
	- ConfigurationServiceImpl is STOPPED
	- Communication is STARTED
		- JNDIAgentServiceImpl is STOPPED
		- JNDIServiceImpl is STOPPED
		- agent-jmx is STOPPED
		- RMIConnectorImpl is STOPPED
		- JMXServiceImpl is STOPPED
		- RemoteCheckerClientImpl is STOPPED
		- TopologyServiceImpl is STOPPED
	- System is STARTED
		- PersistenceServiceImpl is STOPPED
		- RepositoryServiceImpl is STOPPED
		- SystemStateServiceImpl is STOPPED
		- ClassLoaderServiceImpl is STOPPED
		- TransactionServiceImpl is STOPPED
		- LoggingServiceImpl is STOPPED
		- LoggingServiceMBeanImpl is STOPPED
	- ExtensionsManager is STARTED
		- InstallationExtensionsManagerImpl is STOPPED
		- ExtensionsManagerImpl is STOPPED
	- JBI-Management is STARTED
		- AdminServiceImpl is STOPPED
		- InstallationServiceImpl is STOPPED
		- DeploymentServiceImpl is STOPPED
		- ComponentInstallationServiceImpl is STOPPED
		- AtomicDeploymentServiceImpl is STOPPED
		- MBeanNameBuilderImpl is STOPPED
	- PetalsAdminServiceImpl is STOPPED
	- JBI-Messaging is STARTED
		- EndpointRegistryImpl is STOPPED
		- RouterMonitorServiceImpl is STOPPED
		- RouterServiceImpl is STOPPED
		- FlowControllerModule is STOPPED
		- FlowFilterModule is STOPPED
		- PriorityOrdererModule is STOPPED
		- TransportResolverModule is STOPPED
		- EndpointResolverModule is STOPPED
		- ExchangeCheckerClientImpl is STOPPED
	- Transporter is STARTED
		- LocalTransporter is STOPPED
		- LocalTransporterMonitoring is STOPPED
		- TcpTransporter is STOPPED
		- NioTransportProtocol is STARTED
			- NioSelectorAgent is STOPPED
			- NioServerAgent is STOPPED
			- NioClientObjectPool is STOPPED
	- Container is STARTED
		- ContainerServiceImpl is STOPPED
Some composites are not stop !!!! ?????
Hide
Victor NOËL added a comment - Tue, 26 May 2015 - 16:55:25 +0200

Is this still a problem? After the switch to julia, many things related to fractal were fixed (see PETALSESBCONT-318).

Show
Victor NOËL added a comment - Tue, 26 May 2015 - 16:55:25 +0200 Is this still a problem? After the switch to julia, many things related to fractal were fixed (see PETALSESBCONT-318).
Hide
Christophe DENEUX added a comment - Wed, 27 May 2015 - 07:54:19 +0200

Victor, this problem was fixed with PETALSESBCONT-300

Show
Christophe DENEUX added a comment - Wed, 27 May 2015 - 07:54:19 +0200 Victor, this problem was fixed with PETALSESBCONT-300

People

Dates

  • Created:
    Mon, 7 Oct 2013 - 17:04:22 +0200
    Updated:
    Wed, 27 May 2015 - 07:54:19 +0200
    Resolved:
    Wed, 27 May 2015 - 07:53:27 +0200