Skip to content

Instantly share code, notes, and snippets.

@sscarduzio
Last active December 12, 2015 12:19
Show Gist options
  • Save sscarduzio/4771134 to your computer and use it in GitHub Desktop.
Save sscarduzio/4771134 to your computer and use it in GitHub Desktop.
Pumping connections goes really fast, but sometimes it just hangs and is not able to process ANY more connections.
public void start() {
NetServer ns = vertx.createNetServer();
ns.setTCPNoDelay(true);
ns.setReuseAddress(true);
ns.connectHandler(new Handler<NetSocket>() {
public void handle(final NetSocket socket) {
socket.exceptionHandler(new Handler<Exception>(){
@Override
public void handle(Exception event) {
return;
}
});
socket.endHandler(new Handler<Void>(){
@Override
public void handle(Void v) {
RoutingEngine.getInstance().closeClient(socket);
}
});
socket.dataHandler(new Handler<Buffer>(){
@Override
public void handle(Buffer event) {
// If it's sync tunneling, we don't need to handle the data
if(RoutingEngine.getInstance().isTuneling(socket)){
return;
}
final RedisCommand c = new RedisCommand(socket);
try {
// .... some parsing //
c.parse(event.toString());
} catch (IllegalRedisCommandException e) {
e.printStackTrace();
}
if(c.getCommandFamily() == RedisCommandFamily.UNSUPPORTED){
socket.write("-ERR unknown command " + c);
}
RoutingEngine.getInstance().handleCommand(c);
}
});
}
}).listen(SRV_LISTEN_PORT);
public class RoutingEngine {
private static final HashMap<NetSocket, NetSocket> tunnels = new HashMap<NetSocket, NetSocket>();
private static RoutingEngine instance;
private NetClient nc = VertxMediator.getVertx().createNetClient();
private RoutingEngine(){
nc.setReuseAddress(true);
nc.setTCPNoDelay(true);
}
public static RoutingEngine getInstance() {
if(instance == null){
instance = new RoutingEngine();
}
return instance;
}
public void handleCommand(RedisCommand command){
synchTunnel(command);
}
/**
* This creates a transparent tunnel
* @param command
*/
private void synchTunnel(final RedisCommand command){
nc.connect(6379, "localhost", new Handler<NetSocket>() {
@Override
public void handle(NetSocket cliSocket) {
Pump.createPump(command.getOriginSocket(), cliSocket).start();
Pump.createPump(cliSocket, command.getOriginSocket()).start();
cliSocket.write(command.toByteArray());
tunnels.put(command.getOriginSocket(), cliSocket);
// If redis closes, we close too!
cliSocket.endHandler(new Handler<Void>(){
@Override
public void handle(Void v) {
command.getOriginSocket().close();
// Make sure we remove from tunnels
closeClient(command.getOriginSocket());
}
});
}
});
nc.exceptionHandler(new Handler<Exception>(){
@Override
public void handle(Exception arg0) {
System.out.println("Closing connection because server does not respond");
command.getOriginSocket().close();
closeClient(command.getOriginSocket());
}
});
}
public boolean isTuneling(NetSocket socket){
return tunnels.containsKey(socket);
}
public void closeClient(NetSocket socket) {
NetSocket cliSocket = tunnels.get(socket);
if(cliSocket != null){
cliSocket.close();
tunnels.remove(socket);
}
}
}
2013-02-12 17:09:20
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.5-b02 mixed mode):
"Hashed wheel timer #6" prio=5 tid=0x00007f9ecad27000 nid=0x6207 waiting on condition [0x0000000144493000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.jboss.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:464)
at org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:373)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at java.lang.Thread.run(Thread.java:722)
"Hashed wheel timer #5" prio=5 tid=0x00007f9eca93a000 nid=0x6e03 waiting on condition [0x0000000144390000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.jboss.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:464)
at org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:373)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at java.lang.Thread.run(Thread.java:722)
"Hashed wheel timer #4" prio=5 tid=0x00007f9eccaf9000 nid=0x6c03 waiting on condition [0x000000014418a000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.jboss.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:464)
at org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:373)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at java.lang.Thread.run(Thread.java:722)
"Hashed wheel timer #3" prio=5 tid=0x00007f9ecb06f000 nid=0x6a03 waiting on condition [0x0000000143f84000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.jboss.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:464)
at org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:373)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at java.lang.Thread.run(Thread.java:722)
"Hashed wheel timer #2" prio=5 tid=0x00007f9eca0c8000 nid=0x6803 waiting on condition [0x0000000143d7e000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.jboss.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:464)
at org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:373)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at java.lang.Thread.run(Thread.java:722)
"New I/O server boss #1 ([id: 0x4f583025, /0:0:0:0:0:0:0:0:7045])" daemon prio=5 tid=0x00007f9ec9089800 nid=0x6003 runnable [0x00000001436c2000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:159)
at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
- locked <0x000000010f245200> (a sun.nio.ch.Util$2)
- locked <0x000000010f2451f0> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000010f244f98> (a sun.nio.ch.KQueueSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102)
at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink$Boss.run(NioServerSocketPipelineSink.java:231)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
"vert.x-worker-thread-1" daemon prio=5 tid=0x00007f9ecd04d800 nid=0x5f03 waiting on condition [0x000000014352c000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000010f2442f0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
"vert.x-worker-thread-0" daemon prio=5 tid=0x00007f9eca8fa800 nid=0x5e03 waiting on condition [0x0000000143429000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000010f2442f0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
"localStaging1-NON_BLOCKING_WRITE" daemon prio=5 tid=0x00007f9ecd035800 nid=0x5d03 runnable [0x0000000143326000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:159)
at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
- locked <0x000000010f2c66e0> (a sun.nio.ch.Util$2)
- locked <0x000000010f2c66d0> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000010f3997e0> (a sun.nio.ch.KQueueSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
at org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
"localStaging1-NON_BLOCKING_READ" daemon prio=5 tid=0x00007f9eca8f9800 nid=0x5c03 runnable [0x0000000143223000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:159)
at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
- locked <0x000000010f2ae840> (a sun.nio.ch.Util$2)
- locked <0x000000010f2ae830> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000010f399428> (a sun.nio.ch.KQueueSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
at org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
"localStaging1-BLOCKING" daemon prio=5 tid=0x00007f9eca8e7000 nid=0x5b03 runnable [0x0000000143120000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:159)
at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
- locked <0x000000010f38f008> (a sun.nio.ch.Util$2)
- locked <0x000000010f38eff8> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000010f38edc0> (a sun.nio.ch.KQueueSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
at org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
"localStaging1-PUB_SUB" daemon prio=5 tid=0x00007f9ecb051800 nid=0x5a03 runnable [0x000000014301d000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:159)
at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
- locked <0x000000010f2b5928> (a sun.nio.ch.Util$2)
- locked <0x000000010f2b5918> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000010f2b57e8> (a sun.nio.ch.KQueueSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
at org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
"redgate.acceptor.AcceptorVerticle" daemon prio=5 tid=0x00007f9eca8e4000 nid=0x5903 runnable [0x0000000142f1a000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:159)
at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
- locked <0x000000010f394d28> (a sun.nio.ch.Util$2)
- locked <0x000000010f394d18> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000010f394bd0> (a sun.nio.ch.KQueueSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
at org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
"New I/O worker #3" daemon prio=5 tid=0x00007f9eca8af000 nid=0x5803 runnable [0x0000000142e17000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:159)
at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
- locked <0x000000010f2cbad8> (a sun.nio.ch.Util$2)
- locked <0x000000010f2cbac8> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000010f2cb890> (a sun.nio.ch.KQueueSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
at org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
"New I/O worker #2" daemon prio=5 tid=0x00007f9eca873800 nid=0x5703 runnable [0x0000000142d14000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:159)
at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
- locked <0x000000010f244940> (a sun.nio.ch.Util$2)
- locked <0x000000010f244930> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000010f244708> (a sun.nio.ch.KQueueSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
at org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
"New I/O worker #1" daemon prio=5 tid=0x00007f9eca88f000 nid=0x5603 runnable [0x0000000142c11000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:159)
at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
- locked <0x000000010f2d6068> (a sun.nio.ch.Util$2)
- locked <0x000000010f2d6078> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000010f2c71a8> (a sun.nio.ch.KQueueSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
at org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:244)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
"Hashed wheel timer #1" daemon prio=5 tid=0x00007f9ecc80d800 nid=0x5503 sleeping[0x0000000142a2e000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.jboss.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:464)
at org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:373)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at java.lang.Thread.run(Thread.java:722)
"Service Thread" daemon prio=5 tid=0x00007f9ecd015000 nid=0x5303 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" daemon prio=5 tid=0x00007f9ecd011000 nid=0x5203 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" daemon prio=5 tid=0x00007f9ec9012000 nid=0x5103 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=5 tid=0x00007f9eca81e000 nid=0x5003 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=5 tid=0x00007f9eca021800 nid=0x3f03 in Object.wait() [0x000000014221f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000010f243518> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x000000010f243518> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)
"Reference Handler" daemon prio=5 tid=0x00007f9eca020800 nid=0x3e03 in Object.wait() [0x000000014211c000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000010f2a55e0> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:503)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
- locked <0x000000010f2a55e0> (a java.lang.ref.Reference$Lock)
"main" prio=5 tid=0x00007f9eca801000 nid=0x1703 waiting on condition [0x000000010657f000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000010f2cc428> (a java.util.concurrent.CountDownLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:236)
at org.vertx.java.deploy.impl.VerticleManager.block(VerticleManager.java:123)
at org.vertx.java.deploy.impl.cli.Starter.runVerticle(Starter.java:208)
at org.vertx.java.deploy.impl.cli.Starter.<init>(Starter.java:75)
at org.vertx.java.deploy.impl.cli.Starter.main(Starter.java:51)
"VM Thread" prio=5 tid=0x00007f9eca81b800 nid=0x3d03 runnable
"GC task thread#0 (ParallelGC)" prio=5 tid=0x00007f9ecd000000 nid=0x3503 runnable
"GC task thread#1 (ParallelGC)" prio=5 tid=0x00007f9eca004000 nid=0x3603 runnable
"GC task thread#2 (ParallelGC)" prio=5 tid=0x00007f9ecb800800 nid=0x3703 runnable
"GC task thread#3 (ParallelGC)" prio=5 tid=0x00007f9ecb801000 nid=0x3803 runnable
"GC task thread#4 (ParallelGC)" prio=5 tid=0x00007f9ecb801800 nid=0x3903 runnable
"GC task thread#5 (ParallelGC)" prio=5 tid=0x00007f9ecb802800 nid=0x3a03 runnable
"GC task thread#6 (ParallelGC)" prio=5 tid=0x00007f9ecb803000 nid=0x3b03 runnable
"GC task thread#7 (ParallelGC)" prio=5 tid=0x00007f9ecb803800 nid=0x3c03 runnable
"VM Periodic Task Thread" prio=5 tid=0x00007f9ecd00f000 nid=0x5403 waiting on condition
JNI global references: 254
Heap
PSYoungGen total 9600K, used 5208K [0x000000012dbe0000, 0x000000012e680000, 0x000000013d530000)
eden space 9088K, 51% used [0x000000012dbe0000,0x000000012e076078,0x000000012e4c0000)
from space 512K, 100% used [0x000000012e4f0000,0x000000012e570000,0x000000012e570000)
to space 896K, 0% used [0x000000012e5a0000,0x000000012e5a0000,0x000000012e680000)
ParOldGen total 31936K, used 18935K [0x000000010e930000, 0x0000000110860000, 0x000000012dbe0000)
object space 31936K, 59% used [0x000000010e930000,0x000000010fbadd78,0x0000000110860000)
PSPermGen total 21248K, used 10561K [0x0000000109730000, 0x000000010abf0000, 0x000000010e930000)
object space 21248K, 49% used [0x0000000109730000,0x000000010a1806f0,0x000000010abf0000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment