[jboss-dev-forums] [JBoss Transactions Development] - Shutdown of JTS

Kabir Khan do-not-reply at jboss.com
Thu Oct 7 10:23:28 EDT 2010


Kabir Khan [http://community.jboss.org/people/kabir.khan%40jboss.com] created the discussion

"Shutdown of JTS"

To view the discussion, visit: http://community.jboss.org/message/565379#565379

--------------------------------------------------------------
For AS 7 we are using jbossjts 4.11.0.Final, and I am seeing some problems on shutdown of a server instance. This does not happen every time but often enough on my machine. For about 65 seconds I see stack traces like:

> "Attach Listener" daemon prio=9 tid=12e309000 nid=0x130102000 waiting on condition [00000000]
> 
>    java.lang.Thread.State: RUNNABLE
> 
>  
> 
> "Exit thread" prio=5 tid=101b85000 nid=0x13134e000 waiting for monitor entry [13134d000]
> 
>    java.lang.Thread.State: BLOCKED (on object monitor)
> 
> at java.lang.Shutdown.exit(Shutdown.java:168)
> 
> - waiting to lock <1256c5a88> (a java.lang.Class for java.lang.Shutdown)
> 
> at java.lang.Runtime.exit(Runtime.java:90)
> 
> at java.lang.System.exit(System.java:921)
> 
> at org.jboss.as.server.SystemExiter$DefaultExiter.exit(SystemExiter.java:53)
> 
> at org.jboss.as.server.SystemExiter.exit(SystemExiter.java:40)
> 
> at org.jboss.as.server.ProcessManagerServerCommunicationHandler$Controller$1.run(ProcessManagerServerCommunicationHandler.java:118)
> 
> at java.lang.Thread.run(Thread.java:637)
> 
>  
> 
> "Thread-2" daemon prio=5 tid=12e1c9000 nid=0x13185d000 waiting on condition [13185c000]
> 
>    java.lang.Thread.State: WAITING (parking)
> 
> at sun.misc.Unsafe.park(Native Method)
> 
> - parking to wait for  <1057a6b78> (a java.util.concurrent.CountDownLatch$Sync)
> 
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
> 
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
> 
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:905)
> 
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1217)
> 
> at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
> 
> at org.jboss.msc.service.ServiceContainerImpl$ShutdownHookHolder$1$1.run(ServiceContainerImpl.java:110)
> 
> at java.lang.Thread.run(Thread.java:637)
> 
>  
> 
> "SIGINT handler" daemon prio=9 tid=101aa1000 nid=0x13175a000 in Object.wait() [131759000]
> 
>    java.lang.Thread.State: WAITING (on object monitor)
> 
> at java.lang.Object.wait(Native Method)
> 
> - waiting on <107d1cc70> (a java.lang.Thread)
> 
> at java.lang.Thread.join(Thread.java:1167)
> 
> - locked <107d1cc70> (a java.lang.Thread)
> 
> at java.lang.Thread.join(Thread.java:1220)
> 
> 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 <1256c5a88> (a java.lang.Class for java.lang.Shutdown)
> 
> at java.lang.Terminator$1.handle(Terminator.java:35)
> 
> at sun.misc.Signal$1.run(Signal.java:195)
> 
> at java.lang.Thread.run(Thread.java:637)
> 
>  
> 
> "Thread-8" daemon prio=5 tid=12e311800 nid=0x130cde000 in Object.wait() [130cdd000]
> 
>    java.lang.Thread.State: WAITING (on object monitor)
> 
> at java.lang.Object.wait(Native Method)
> 
> - waiting on <1064bf630> (a java.util.LinkedList)
> 
> at java.lang.Object.wait(Object.java:485)
> 
> at com.arjuna.ats.arjuna.coordinator.TransactionReaper.waitForCancellations(TransactionReaper.java:397)
> 
> - locked <1064bf630> (a java.util.LinkedList)
> 
> at com.arjuna.ats.internal.arjuna.coordinator.ReaperWorkerThread.run(ReaperWorkerThread.java:65)
> 
>  
> 
> "Thread-7" daemon prio=5 tid=101a53800 nid=0x130bdb000 in Object.wait() [130bda000]
> 
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
> 
> at java.lang.Object.wait(Native Method)
> 
> - waiting on <1064bf658> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
> 
> at com.arjuna.ats.internal.arjuna.coordinator.ReaperThread.run(ReaperThread.java:95)
> 
> - locked <1064bf658> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
> 
>  
> 
> "Periodic Recovery" daemon prio=5 tid=12e308800 nid=0x130ad8000 in Object.wait() [130ad7000]
> 
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
> 
> at java.lang.Object.wait(Native Method)
> 
> - waiting on <1063c0340> (a java.lang.Object)
> 
> at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doPeriodicWait(PeriodicRecovery.java:696)
> 
> at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:416)
> 
> - locked <1063c0340> (a java.lang.Object)
> 
>  
> 
> "Listener:4862" daemon prio=5 tid=12e307800 nid=0x1309d5000 runnable [1309d4000]
> 
>    java.lang.Thread.State: RUNNABLE
> 
> at java.net.PlainSocketImpl.socketAccept(Native Method)
> 
> at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
> 
> - locked <1064bf858> (a java.net.SocksSocketImpl)
> 
> at java.net.ServerSocket.implAccept(ServerSocket.java:453)
> 
> at java.net.ServerSocket.accept(ServerSocket.java:421)
> 
> at com.arjuna.ats.internal.arjuna.recovery.Listener.run(Listener.java:124)
> 
>  
> 
> "Thread-6" daemon prio=5 tid=12e305000 nid=0x1308d2000 runnable [1308d1000]
> 
>    java.lang.Thread.State: RUNNABLE
> 
> at java.net.PlainSocketImpl.socketConnect(Native Method)
> 
> at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
> 
> - locked <1064c0338> (a java.net.SocksSocketImpl)
> 
> at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
> 
> at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
> 
> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
> 
> at java.net.Socket.connect(Socket.java:529)
> 
> at java.net.Socket.connect(Socket.java:478)
> 
> at java.net.Socket.<init>(Socket.java:375)
> 
> at java.net.Socket.<init>(Socket.java:189)
> 
> at com.arjuna.ats.internal.arjuna.recovery.TransactionStatusConnector.establishConnection(TransactionStatusConnector.java:209)
> 
> at com.arjuna.ats.internal.arjuna.recovery.TransactionStatusConnector.test(TransactionStatusConnector.java:75)
> 
> at com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner.scan(ExpiredTransactionStatusManagerScanner.java:136)
> 
> at com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.run(ExpiredEntryMonitor.java:191)
> 
>  
> 
> "pool-2-thread-1" prio=5 tid=12e22c000 nid=0x1306cc000 waiting on condition [1306cb000]
> 
>    java.lang.Thread.State: WAITING (parking)
> 
> at sun.misc.Unsafe.park(Native Method)
> 
> - parking to wait for  <1063c06e8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> 
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
> 
> at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
> 
> at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
> 
> at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
> 
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> 
> at java.lang.Thread.run(Thread.java:637)
> 
>  
> 
> "Reference Reaper" daemon prio=5 tid=12e1fa800 nid=0x1305c0000 in Object.wait() [1305bf000]
> 
>    java.lang.Thread.State: WAITING (on object monitor)
> 
> at java.lang.Object.wait(Native Method)
> 
> - waiting on <1063c0e30> (a java.lang.ref.ReferenceQueue$Lock)
> 
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
> 
> - locked <1063c0e30> (a java.lang.ref.ReferenceQueue$Lock)
> 
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
> 
> at org.jboss.msc.ref.References$ReaperThread.run(References.java:64)
> 
>  
> 
> "Thread-3" daemon prio=5 tid=101a54800 nid=0x1304bd000 in Object.wait() [1304bc000]
> 
>    java.lang.Thread.State: WAITING (on object monitor)
> 
> at java.lang.Object.wait(Native Method)
> 
> - waiting on <1064bfa30> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)
> 
> at java.lang.Thread.join(Thread.java:1167)
> 
> - locked <1064bfa30> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)
> 
> at java.lang.Thread.join(Thread.java:1220)
> 
> at com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.shutdown(ExpiredEntryMonitor.java:130)
> 
> - locked <1260aba50> (a java.lang.Class for com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)
> 
> at com.arjuna.ats.internal.arjuna.recovery.RecoveryManagerImple.stop(RecoveryManagerImple.java:209)
> 
> at com.arjuna.ats.arjuna.recovery.RecoveryManager.terminate(RecoveryManager.java:213)
> 
> - locked <1064b6c68> (a com.arjuna.ats.arjuna.recovery.RecoveryManager)
> 
> at com.arjuna.ats.arjuna.recovery.RecoveryManager.terminate(RecoveryManager.java:197)
> 
> at com.arjuna.ats.jbossatx.jta.RecoveryManagerService.stop(RecoveryManagerService.java:84)
> 
> at org.jboss.as.txn.TransactionManagerService.stop(TransactionManagerService.java:224)
> 
> - locked <1064b6bc0> (a org.jboss.as.txn.TransactionManagerService)
> 
> at org.jboss.msc.service.ServiceControllerImpl$StopTask.run(ServiceControllerImpl.java:1061)
> 
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 
> at java.lang.Thread.run(Thread.java:637)
> 
>  
> 
> "Poller SunPKCS11-Darwin" daemon prio=1 tid=12e103000 nid=0x130361000 waiting on condition [130360000]
> 
>    java.lang.Thread.State: TIMED_WAITING (sleeping)
> 
> at java.lang.Thread.sleep(Native Method)
> 
> at sun.security.pkcs11.SunPKCS11$TokenPoller.run(SunPKCS11.java:692)
> 
> at java.lang.Thread.run(Thread.java:637)
> 
>  
> 
> "DestroyJavaVM" prio=5 tid=12e102000 nid=0x100501000 waiting on condition [00000000]
> 
>    java.lang.Thread.State: RUNNABLE
> 
>  
> 
> "ClassLoader Thread" daemon prio=5 tid=1018e0000 nid=0x12fd7a000 in Object.wait() [12fd79000]
> 
>    java.lang.Thread.State: WAITING (on object monitor)
> 
> at java.lang.Object.wait(Native Method)
> 
> - waiting on <107b27cb8> (a java.util.ArrayDeque)
> 
> at java.lang.Object.wait(Object.java:485)
> 
> at org.jboss.modules.ConcurrentClassLoader$LoaderThread.run(ConcurrentClassLoader.java:329)
> 
> - locked <107b27cb8> (a java.util.ArrayDeque)
> 
>  
> 
> "Low Memory Detector" daemon prio=5 tid=101878800 nid=0x12fa90000 runnable [00000000]
> 
>    java.lang.Thread.State: RUNNABLE
> 
>  
> 
> "CompilerThread1" daemon prio=9 tid=101878000 nid=0x12f98d000 waiting on condition [00000000]
> 
>    java.lang.Thread.State: RUNNABLE
> 
>  
> 
> "CompilerThread0" daemon prio=9 tid=101877000 nid=0x12f88a000 waiting on condition [00000000]
> 
>    java.lang.Thread.State: RUNNABLE
> 
>  
> 
> "Signal Dispatcher" daemon prio=9 tid=101876800 nid=0x12f787000 runnable [00000000]
> 
>    java.lang.Thread.State: RUNNABLE
> 
>  
> 
> "Surrogate Locker Thread (CMS)" daemon prio=5 tid=12e03c800 nid=0x12f684000 waiting on condition [00000000]
> 
>    java.lang.Thread.State: RUNNABLE
> 
>  
> 
> "Finalizer" daemon prio=8 tid=101875800 nid=0x12f307000 in Object.wait() [12f306000]
> 
>    java.lang.Thread.State: WAITING (on object monitor)
> 
> at java.lang.Object.wait(Native Method)
> 
> - waiting on <107ca9848> (a java.lang.ref.ReferenceQueue$Lock)
> 
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
> 
> - locked <107ca9848> (a java.lang.ref.ReferenceQueue$Lock)
> 
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
> 
> at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
> 
>  
> 
> "Reference Handler" daemon prio=10 tid=101875000 nid=0x12f204000 in Object.wait() [12f203000]
> 
>    java.lang.Thread.State: WAITING (on object monitor)
> 
> at java.lang.Object.wait(Native Method)
> 
> - waiting on <107ca8f60> (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 <107ca8f60> (a java.lang.ref.Reference$Lock)
> 
>  
> 
> "VM Thread" prio=9 tid=12e022000 nid=0x12f101000 runnable 
> 
>  
> 
> "Gang worker#0 (Parallel GC Threads)" prio=9 tid=101802800 nid=0x10171b000 runnable 
> 
>  
> 
> "Gang worker#1 (Parallel GC Threads)" prio=9 tid=101803000 nid=0x105102000 runnable 
> 
>  
> 
> "Concurrent Mark-Sweep GC Thread" prio=9 tid=101842800 nid=0x12dbe6000 runnable 
> 
> "VM Periodic Task Thread" prio=10 tid=10187a000 nid=0x12fb93000 waiting on condition 
> 
>  
> 
> "Exception Catcher Thread" prio=10 tid=101801800 nid=0x100636000 runnable 
> 
> JNI global references: 889
> "Attach Listener" daemon prio=9 tid=12e309000 nid=0x130102000 waiting on condition [00000000]
>    java.lang.Thread.State: RUNNABLE
> 
> "Exit thread" prio=5 tid=101b85000 nid=0x13134e000 waiting for monitor entry [13134d000]
>    java.lang.Thread.State: BLOCKED (on object monitor)
>      at java.lang.Shutdown.exit(Shutdown.java:168)
>      - waiting to lock <1256c5a88> (a java.lang.Class for java.lang.Shutdown)
>      at java.lang.Runtime.exit(Runtime.java:90)
>      at java.lang.System.exit(System.java:921)
>      at org.jboss.as.server.SystemExiter$DefaultExiter.exit(SystemExiter.java:53)
>      at org.jboss.as.server.SystemExiter.exit(SystemExiter.java:40)
>      at org.jboss.as.server.ProcessManagerServerCommunicationHandler$Controller$1.run(ProcessManagerServerCommunicationHandler.java:118)
>      at java.lang.Thread.run(Thread.java:637)
> 
> "Thread-2" daemon prio=5 tid=12e1c9000 nid=0x13185d000 waiting on condition [13185c000]
>    java.lang.Thread.State: WAITING (parking)
>      at sun.misc.Unsafe.park(Native Method)
>      - parking to wait for  <1057a6b78> (a java.util.concurrent.CountDownLatch$Sync)
>      at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>      at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
>      at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:905)
>      at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1217)
>      at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
>      at org.jboss.msc.service.ServiceContainerImpl$ShutdownHookHolder$1$1.run(ServiceContainerImpl.java:110)
>      at java.lang.Thread.run(Thread.java:637)
> 
> "SIGINT handler" daemon prio=9 tid=101aa1000 nid=0x13175a000 in Object.wait() [131759000]
>    java.lang.Thread.State: WAITING (on object monitor)
>      at java.lang.Object.wait(Native Method)
>      - waiting on <107d1cc70> (a java.lang.Thread)
>      at java.lang.Thread.join(Thread.java:1167)
>      - locked <107d1cc70> (a java.lang.Thread)
>      at java.lang.Thread.join(Thread.java:1220)
>      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 <1256c5a88> (a java.lang.Class for java.lang.Shutdown)
>      at java.lang.Terminator$1.handle(Terminator.java:35)
>      at sun.misc.Signal$1.run(Signal.java:195)
>      at java.lang.Thread.run(Thread.java:637)
> 
> "Thread-8" daemon prio=5 tid=12e311800 nid=0x130cde000 in Object.wait() [130cdd000]
>    java.lang.Thread.State: WAITING (on object monitor)
>      at java.lang.Object.wait(Native Method)
>      - waiting on <1064bf630> (a java.util.LinkedList)
>      at java.lang.Object.wait(Object.java:485)
>      at com.arjuna.ats.arjuna.coordinator.TransactionReaper.waitForCancellations(TransactionReaper.java:397)
>      - locked <1064bf630> (a java.util.LinkedList)
>      at com.arjuna.ats.internal.arjuna.coordinator.ReaperWorkerThread.run(ReaperWorkerThread.java:65)
> 
> "Thread-7" daemon prio=5 tid=101a53800 nid=0x130bdb000 in Object.wait() [130bda000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>      at java.lang.Object.wait(Native Method)
>      - waiting on <1064bf658> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
>      at com.arjuna.ats.internal.arjuna.coordinator.ReaperThread.run(ReaperThread.java:95)
>      - locked <1064bf658> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
> 
> "Periodic Recovery" daemon prio=5 tid=12e308800 nid=0x130ad8000 in Object.wait() [130ad7000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>      at java.lang.Object.wait(Native Method)
>      - waiting on <1063c0340> (a java.lang.Object)
>      at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doPeriodicWait(PeriodicRecovery.java:696)
>      at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:416)
>      - locked <1063c0340> (a java.lang.Object)
> 
> "Listener:4862" daemon prio=5 tid=12e307800 nid=0x1309d5000 runnable [1309d4000]
>    java.lang.Thread.State: RUNNABLE
>      at java.net.PlainSocketImpl.socketAccept(Native Method)
>      at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
>      - locked <1064bf858> (a java.net.SocksSocketImpl)
>      at java.net.ServerSocket.implAccept(ServerSocket.java:453)
>      at java.net.ServerSocket.accept(ServerSocket.java:421)
>      at com.arjuna.ats.internal.arjuna.recovery.Listener.run(Listener.java:124)
> 
> *"Thread-6" daemon prio=5 tid=12e305000 nid=0x1308d2000 runnable [1308d1000]*
> *   java.lang.Thread.State: RUNNABLE*
> *     **at java.net.PlainSocketImpl.socketConnect(Native Method)*
> *     **at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)*
> *     **- locked <1064c0338> (a java.net.SocksSocketImpl)*
> *     **at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)*
> *     **at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)*
> *     **at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)*
> *     **at java.net.Socket.connect(Socket.java:529)*
> *     **at java.net.Socket.connect(Socket.java:478)*
> *     **at java.net.Socket.<init>(Socket.java:375)*
> *     **at java.net.Socket.<init>(Socket.java:189)*
> *     **at com.arjuna.ats.internal.arjuna.recovery.TransactionStatusConnector.establishConnection(TransactionStatusConnector.java:209)*
> *     **at com.arjuna.ats.internal.arjuna.recovery.TransactionStatusConnector.test(TransactionStatusConnector.java:75)*
> *     **at com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner.scan(ExpiredTransactionStatusManagerScanner.java:136)*
> *     **at com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.run(ExpiredEntryMonitor.java:191)*
> 
> "pool-2-thread-1" prio=5 tid=12e22c000 nid=0x1306cc000 waiting on condition [1306cb000]
>    java.lang.Thread.State: WAITING (parking)
>      at sun.misc.Unsafe.park(Native Method)
>      - parking to wait for  <1063c06e8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>      at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
>      at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>      at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>      at java.lang.Thread.run(Thread.java:637)
> 
> "Reference Reaper" daemon prio=5 tid=12e1fa800 nid=0x1305c0000 in Object.wait() [1305bf000]
>    java.lang.Thread.State: WAITING (on object monitor)
>      at java.lang.Object.wait(Native Method)
>      - waiting on <1063c0e30> (a java.lang.ref.ReferenceQueue$Lock)
>      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
>      - locked <1063c0e30> (a java.lang.ref.ReferenceQueue$Lock)
>      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
>      at org.jboss.msc.ref.References$ReaperThread.run(References.java:64)
> 
> *"Thread-3" daemon prio=5 tid=101a54800 nid=0x1304bd000 in Object.wait() [1304bc000]*
> *   java.lang.Thread.State: WAITING (on object monitor)*
> *     **at java.lang.Object.wait(Native Method)*
> *     **- waiting on <1064bfa30> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)*
> *     **at java.lang.Thread.join(Thread.java:1167)*
> *     **- locked <1064bfa30> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)*
> *     **at java.lang.Thread.join(Thread.java:1220)*
> *     **at com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.shutdown(ExpiredEntryMonitor.java:130)*
> *     **- locked <1260aba50> (a java.lang.Class for com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)*
> *     **at com.arjuna.ats.internal.arjuna.recovery.RecoveryManagerImple.stop(RecoveryManagerImple.java:209)*
> *     **at com.arjuna.ats.arjuna.recovery.RecoveryManager.terminate(RecoveryManager.java:213)*
> *     **- locked <1064b6c68> (a com.arjuna.ats.arjuna.recovery.RecoveryManager)*
> *     **at com.arjuna.ats.arjuna.recovery.RecoveryManager.terminate(RecoveryManager.java:197)*
> *     **at com.arjuna.ats.jbossatx.jta.RecoveryManagerService.stop(RecoveryManagerService.java:84)*
> *     **at org.jboss.as.txn.TransactionManagerService.stop(TransactionManagerService.java:224)*
> *     **- locked <1064b6bc0> (a org.jboss.as.txn.TransactionManagerService)*
> *     **at org.jboss.msc.service.ServiceControllerImpl$StopTask.run(ServiceControllerImpl.java:1061)*
> *     **at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)*
> *     **at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)*
> *     **at java.lang.Thread.run(Thread.java:637)*
> 
> "Poller SunPKCS11-Darwin" daemon prio=1 tid=12e103000 nid=0x130361000 waiting on condition [130360000]
>    java.lang.Thread.State: TIMED_WAITING (sleeping)
>      at java.lang.Thread.sleep(Native Method)
>      at sun.security.pkcs11.SunPKCS11$TokenPoller.run(SunPKCS11.java:692)
>      at java.lang.Thread.run(Thread.java:637)
> 
> "DestroyJavaVM" prio=5 tid=12e102000 nid=0x100501000 waiting on condition [00000000]
>    java.lang.Thread.State: RUNNABLE
> 
> "ClassLoader Thread" daemon prio=5 tid=1018e0000 nid=0x12fd7a000 in Object.wait() [12fd79000]
>    java.lang.Thread.State: WAITING (on object monitor)
>      at java.lang.Object.wait(Native Method)
>      - waiting on <107b27cb8> (a java.util.ArrayDeque)
>      at java.lang.Object.wait(Object.java:485)
>      at org.jboss.modules.ConcurrentClassLoader$LoaderThread.run(ConcurrentClassLoader.java:329)
>      - locked <107b27cb8> (a java.util.ArrayDeque)
> 
> "Low Memory Detector" daemon prio=5 tid=101878800 nid=0x12fa90000 runnable [00000000]
>    java.lang.Thread.State: RUNNABLE
> 
> "CompilerThread1" daemon prio=9 tid=101878000 nid=0x12f98d000 waiting on condition [00000000]
>    java.lang.Thread.State: RUNNABLE
> 
> "CompilerThread0" daemon prio=9 tid=101877000 nid=0x12f88a000 waiting on condition [00000000]
>    java.lang.Thread.State: RUNNABLE
> 
> "Signal Dispatcher" daemon prio=9 tid=101876800 nid=0x12f787000 runnable [00000000]
>    java.lang.Thread.State: RUNNABLE
> 
> "Surrogate Locker Thread (CMS)" daemon prio=5 tid=12e03c800 nid=0x12f684000 waiting on condition [00000000]
>    java.lang.Thread.State: RUNNABLE
> 
> "Finalizer" daemon prio=8 tid=101875800 nid=0x12f307000 in Object.wait() [12f306000]
>    java.lang.Thread.State: WAITING (on object monitor)
>      at java.lang.Object.wait(Native Method)
>      - waiting on <107ca9848> (a java.lang.ref.ReferenceQueue$Lock)
>      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
>      - locked <107ca9848> (a java.lang.ref.ReferenceQueue$Lock)
>      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
>      at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
> 
> "Reference Handler" daemon prio=10 tid=101875000 nid=0x12f204000 in Object.wait() [12f203000]
>    java.lang.Thread.State: WAITING (on object monitor)
>      at java.lang.Object.wait(Native Method)
>      - waiting on <107ca8f60> (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 <107ca8f60> (a java.lang.ref.Reference$Lock)
> 
> "VM Thread" prio=9 tid=12e022000 nid=0x12f101000 runnable 
> 
> "Gang worker#0 (Parallel GC Threads)" prio=9 tid=101802800 nid=0x10171b000 runnable 
> 
> "Gang worker#1 (Parallel GC Threads)" prio=9 tid=101803000 nid=0x105102000 runnable 
> 
> "Concurrent Mark-Sweep GC Thread" prio=9 tid=101842800 nid=0x12dbe6000 runnable 
> "VM Periodic Task Thread" prio=10 tid=10187a000 nid=0x12fb93000 waiting on condition 
> 
> "Exception Catcher Thread" prio=10 tid=101801800 nid=0x100636000 runnable 
> JNI global references: 889

Thread-3 is run by an executor as part of the server shutdown process, and from looking at the code it is waiting for Thread-6 to finish. Thread-6 is stuck in a Socket.connect(), so it sounds like whatever it is trying to connect to is open but no longer accepting connections. Can someone point me towards what TransactionStatusConnector is trying to connect to?
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/565379#565379]

Start a new discussion in JBoss Transactions Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2041]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-dev-forums/attachments/20101007/3ed7012c/attachment.html 


More information about the jboss-dev-forums mailing list