[
https://issues.jboss.org/browse/AS7-1225?page=com.atlassian.jira.plugin.s...
]
Scott Stark commented on AS7-1225:
----------------------------------
I see the code is just returning from main when in non-interactive mode, but there are
non-daemon threads keeping the process from exiting:
[271](ironmaiden:bin) > ./jboss-admin.sh --connect command=:shutdown
The controller is not available at localhost:9999
You are disconnected at the moment. Type 'connect' to connect to the server or
'help' for the list of supported commands.
^\2011-07-07 14:13:36
Full thread dump Java HotSpot(TM) 64-Bit Server VM (19.1-b02-334 mixed mode):
"DestroyJavaVM" prio=5 tid=101801000 nid=0x100601000 waiting on condition
[00000000]
java.lang.Thread.State: RUNNABLE
"pool-1-thread-3" prio=5 tid=102940000 nid=0x10c50a000 waiting on condition
[10c509000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <7f42c8aa0> (a
java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
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:945)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:680)
"pool-1-thread-2" prio=5 tid=101a06000 nid=0x10c793000 waiting on condition
[10c792000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <7f42c8aa0> (a
java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
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:945)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:680)
"pool-1-thread-1" prio=5 tid=10bb09000 nid=0x10c407000 waiting on condition
[10c406000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <7f42c8aa0> (a
java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
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:945)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:680)
"Poller SunPKCS11-Darwin" daemon prio=1 tid=101964000 nid=0x10c304000 waiting on
condition [10c303000]
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:680)
"Reference Reaper" daemon prio=5 tid=101a07000 nid=0x10c201000 in Object.wait()
[10c200000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f42b4070> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <7f42b4070> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at org.jboss.modules.ref.References$ReaperThread.run(References.java:68)
"Low Memory Detector" daemon prio=5 tid=10280c000 nid=0x10b201000 runnable
[00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread1" daemon prio=9 tid=10280b000 nid=0x10a70a000 waiting on
condition [00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=9 tid=10280a800 nid=0x10a607000 waiting on
condition [00000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=9 tid=102809800 nid=0x10a504000 waiting on
condition [00000000]
java.lang.Thread.State: RUNNABLE
"Surrogate Locker Thread (CMS)" daemon prio=5 tid=102809000 nid=0x10a401000
waiting on condition [00000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=8 tid=1018d2000 nid=0x109eea000 in Object.wait()
[109ee9000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f42b4260> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <7f42b4260> (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=1018d1000 nid=0x109de7000 in
Object.wait() [109de6000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <7f42b0180> (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 <7f42b0180> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=9 tid=1018cc800 nid=0x109ce4000 runnable
"Gang worker#0 (Parallel GC Threads)" prio=9 tid=101802800 nid=0x10176a000
runnable
"Gang worker#1 (Parallel GC Threads)" prio=9 tid=101803000 nid=0x102301000
runnable
"Gang worker#2 (Parallel GC Threads)" prio=9 tid=101803800 nid=0x102404000
runnable
"Gang worker#3 (Parallel GC Threads)" prio=9 tid=101804000 nid=0x102507000
runnable
"Concurrent Mark-Sweep GC Thread" prio=9 tid=10187f800 nid=0x1099f0000 runnable
"VM Periodic Task Thread" prio=10 tid=10281d800 nid=0x10b501000 waiting on
condition
"Exception Catcher Thread" prio=10 tid=101801800 nid=0x100704000 runnable
JNI global references: 955
Heap
par new generation total 19136K, used 6068K [7f3000000, 7f44c0000, 7f44c0000)
eden space 17024K, 26% used [7f3000000, 7f3457300, 7f40a0000)
from space 2112K, 76% used [7f42b0000, 7f4445ea8, 7f44c0000)
to space 2112K, 0% used [7f40a0000, 7f40a0000, 7f42b0000)
concurrent mark-sweep generation total 63872K, used 0K [7f44c0000, 7f8320000, 7fae00000)
concurrent-mark-sweep perm gen total 21248K, used 11850K [7fae00000, 7fc2c0000,
800000000)
jboss-admin.sh fails to exit when run in single command mode
------------------------------------------------------------
Key: AS7-1225
URL:
https://issues.jboss.org/browse/AS7-1225
Project: Application Server 7
Issue Type: Bug
Components: CLI
Affects Versions: 7.0.0.CR1
Reporter: Scott Stark
This seems to be a new behavior, but regardless it is a problem that breaks other
frameworks that call out to the command line shell with a single command and expect it to
return. Currently it fails to exit, and callers hang. This is true both in the case of the
server running with a management interface, and when one is missing:
[269](ironmaiden:bin) > ./jboss-admin.sh --connect command=:shutdown
Connected to standalone controller at localhost:9999
Communication error: Channel closed
Closed connection to localhost:9999
^C
[270](ironmaiden:bin) > ./jboss-admin.sh --connect command=:shutdown
The controller is not available at localhost:9999
You are disconnected at the moment. Type 'connect' to connect to the server or
'help' for the list of supported commands.
^C
When running a mode where the commands to run are from a file or command line, that is,
non-interactive mode, the cli should exit with a status.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira