if (vertx.isClustered()) {
vertx.eventBus().consumer(GameClusterManager.getInstance().getNodeID() + MESSAGE_OUT_GROUP, this::sendMessage);
} else {
vertx.eventBus().consumer(DEFAULT_NODE_ADDRESS + MESSAGE_OUT_GROUP, this::sendMessage);
}
io.vertx.core.VertxException: Thread blocked
at java.lang.Object.hashCode(Native Method) ~[?:1.8.0_92]
at java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1012) ~[?:1.8.0_92]
at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006) ~[?:1.8.0_92]
at io.vertx.core.impl.ConcurrentHashSet.add(ConcurrentHashSet.java:74) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.impl.ContextImpl.addCloseHook(ContextImpl.java:116) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.impl.VertxImpl.scheduleTimeout(VertxImpl.java:390) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.impl.VertxImpl.setTimer(VertxImpl.java:267) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.eventbus.impl.HandlerRegistration.<init>(HandlerRegistration.java:62) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.eventbus.impl.EventBusImpl.createReplyHandlerRegistration(EventBusImpl.java:401) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.eventbus.impl.EventBusImpl.sendOrPubInternal(EventBusImpl.java:413) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.eventbus.impl.EventBusImpl.send(EventBusImpl.java:94) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.eventbus.impl.EventBusImpl.send(EventBusImpl.java:84) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.rxjava.core.eventbus.EventBus.send(EventBus.java:84) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.rxjava.core.eventbus.EventBus.sendObservable(EventBus.java:107) ~[demo-1.0-SNAPSHOT.jar:?]
at ***.***.***.game.websocket.WebsocketVerticle.onMessageReceived(WebsocketVerticle.java:133) ~[demo-1.0-SNAPSHOT.jar:?]
at ***.***.***.game.websocket.WebsocketVerticle.lambda$null$487(WebsocketVerticle.java:91) ~[demo-1.0-SNAPSHOT.jar:?]
at ***.***.***.game.websocket.WebsocketVerticle$$Lambda$226/2124547560.handle(Unknown Source) ~[?:?]
at io.vertx.rxjava.core.http.ServerWebSocket$1.handle(ServerWebSocket.java:153) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.rxjava.core.http.ServerWebSocket$1.handle(ServerWebSocket.java:151) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.http.impl.WebSocketImplBase.handleFrame(WebSocketImplBase.java:166) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.http.impl.ServerConnection.handleWsFrame(ServerConnection.java:327) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.http.impl.ServerConnection.processMessage(ServerConnection.java:412) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.http.impl.ServerConnection.handleMessage(ServerConnection.java:134) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.http.impl.HttpServerImpl$ServerHandler.doMessageReceived(HttpServerImpl.java:482) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.http.impl.HttpServerImpl$ServerHandler.doMessageReceived(HttpServerImpl.java:420) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.http.impl.VertxHttpHandler.lambda$channelRead$18(VertxHttpHandler.java:80) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.http.impl.VertxHttpHandler$$Lambda$128/298235518.run(Unknown Source) ~[?:?]
at io.vertx.core.impl.ContextImpl.lambda$wrapTask$16(ContextImpl.java:333) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.impl.ContextImpl$$Lambda$12/1048855692.run(Unknown Source) ~[?:?]
at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:225) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.http.impl.VertxHttpHandler.channelRead(VertxHttpHandler.java:80) ~[demo-1.0-SNAPSHOT.jar:?]
at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:124) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:276) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:368) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:244) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) ~[demo-1.0-SNAPSHOT.jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) ~[demo-1.0-SNAPSHOT.jar:?]
at java.lang.Thread.run(Thread.java:745) ~[?:1.8.0_92]
"vert.x-eventloop-thread-1" #19 prio=5 os_prio=0 tid=0x00007f7c80717000 nid=0x2854 waiting for monitor entry [0x00007f7c6049b000]
java.lang.Thread.State: BLOCKED (on object monitor)
at sun.nio.ch.EPollSelectorImpl.wakeup(EPollSelectorImpl.java:205)
- locked <0x0000000085d8f360> (a java.lang.Object)
at io.netty.channel.nio.NioEventLoop.wakeup(NioEventLoop.java:643)
at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:679)
at io.vertx.core.impl.EventLoopContext.executeAsync(EventLoopContext.java:38)
at io.vertx.core.impl.ContextImpl.runOnContext(ContextImpl.java:243)
at io.vertx.core.eventbus.impl.EventBusImpl.deliverToHandler(EventBusImpl.java:494)
at io.vertx.core.eventbus.impl.EventBusImpl.deliverMessageLocally(EventBusImpl.java:368)
at io.vertx.core.eventbus.impl.EventBusImpl.deliverMessageLocally(EventBusImpl.java:345)
at io.vertx.core.eventbus.impl.EventBusImpl.sendOrPub(EventBusImpl.java:320)
at io.vertx.core.eventbus.impl.EventBusImpl$SendContextImpl.next(EventBusImpl.java:448)
at io.vertx.core.eventbus.impl.EventBusImpl.sendOrPubInternal(EventBusImpl.java:416)
at io.vertx.core.eventbus.impl.EventBusImpl.send(EventBusImpl.java:94)
at io.vertx.core.eventbus.impl.EventBusImpl.send(EventBusImpl.java:84)
at io.vertx.rxjava.core.eventbus.EventBus.send(EventBus.java:83)
at io.vertx.rxjava.core.eventbus.EventBus.sendObservable(EventBus.java:104)
at ***.***.***.game.services.message.processor.impl.MessageProcessorImpl.messageForEveryoneInRoom(MessageProcessorImpl.java:83)
at ***.***.***.game.services.message.processor.StreamMessageProcessor.processFuture(StreamMessageProcessor.java:21)
at ***.***.***.game.services.MessageProcessingServiceVerticle.processMessage(MessageProcessingServiceVerticle.java:107)
at ***.***.***.game.services.MessageProcessingServiceVerticle$$Lambda$39/1127943851.handle(Unknown Source)
at io.vertx.rxjava.core.eventbus.EventBus$3.handle(EventBus.java:203)
at io.vertx.rxjava.core.eventbus.EventBus$3.handle(EventBus.java:201)
at io.vertx.core.eventbus.impl.HandlerRegistration.deliver(HandlerRegistration.java:213)
at io.vertx.core.eventbus.impl.HandlerRegistration.handle(HandlerRegistration.java:192)
at io.vertx.core.eventbus.impl.EventBusImpl.lambda$deliverToHandler$3(EventBusImpl.java:499)
at io.vertx.core.eventbus.impl.EventBusImpl$$Lambda$235/179655894.handle(Unknown Source)
at io.vertx.core.impl.ContextImpl.lambda$wrapTask$3(ContextImpl.java:359)
at io.vertx.core.impl.ContextImpl$$Lambda$15/2074820378.run(Unknown Source)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:339)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:393)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:742)
at java.lang.Thread.run(Thread.java:745)
--
You received this message because you are subscribed to the Google Groups "vert.x" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx+un...@googlegroups.com.
Visit this group at https://groups.google.com/group/vertx.
To view this discussion on the web, visit https://groups.google.com/d/msgid/vertx/b551e89c-3a79-4c71-83f1-611f8aec856b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "vert.x" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx+un...@googlegroups.com.
Visit this group at https://groups.google.com/group/vertx.
To view this discussion on the web, visit https://groups.google.com/d/msgid/vertx/34f0d590-440c-45d0-b84b-7e7bff8c3f92%40googlegroups.com.
On Jul 13, 2016, at 9:53 AM, Yves Peckstadt <pecksta...@gmail.com> wrote:
My apologies. I appended a new thread dump to the same file for every second while running the test. Hence the large file.This file only includes the last thread dump where the problem occurs. (taken with jstack but kill output should be the same)
--
You received this message because you are subscribed to the Google Groups "vert.x" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx+un...@googlegroups.com.
Visit this group at https://groups.google.com/group/vertx.
To view this discussion on the web, visit https://groups.google.com/d/msgid/vertx/3a6ac8e2-6e9d-448e-9d19-c46dd196bd61%40googlegroups.com.
<jstack.log>
--
You received this message because you are subscribed to the Google Groups "vert.x" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx+un...@googlegroups.com.
Visit this group at https://groups.google.com/group/vertx.
To view this discussion on the web, visit https://groups.google.com/d/msgid/vertx/b7a24fbb-2cae-406b-9896-5747ecd385ab%40googlegroups.com.
On Jul 13, 2016, at 10:46 AM, Yves Peckstadt <pecksta...@gmail.com> wrote:
Ok, I will provide this asap. (as I am in Japan this will be tomorrow for you guys).Thank you for the fast feedback as always.
--
You received this message because you are subscribed to the Google Groups "vert.x" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx+un...@googlegroups.com.
Visit this group at https://groups.google.com/group/vertx.
To view this discussion on the web, visit https://groups.google.com/d/msgid/vertx/7bfdc495-04b3-4a3e-8246-78f5d41a79e8%40googlegroups.com.
On Jul 19, 2016, at 9:38 AM, Yves Peckstadt <pecksta...@gmail.com> wrote:
As promised a new thread dump. both projects running on one VM. After about 1200 connections everything locks up again.Thanks.
--
You received this message because you are subscribed to the Google Groups "vert.x" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx+un...@googlegroups.com.
Visit this group at https://groups.google.com/group/vertx.
To view this discussion on the web, visit https://groups.google.com/d/msgid/vertx/f6778379-48fc-47a4-a922-92bdc289543b%40googlegroups.com.
<jstack.16591.log>
--
You received this message because you are subscribed to the Google Groups "vert.x" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx+un...@googlegroups.com.
Visit this group at https://groups.google.com/group/vertx.
To view this discussion on the web, visit https://groups.google.com/d/msgid/vertx/a6e120d3-cbe2-4e49-a028-0269a58c9182%40googlegroups.com.
<game-server.log>
On Jul 21, 2016, at 3:10 AM, Yves Peckstadt <pecksta...@gmail.com> wrote:
I tested with multiple values lower than 512 but it does not seem to make a difference.
--
You received this message because you are subscribed to the Google Groups "vert.x" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx+un...@googlegroups.com.
Visit this group at https://groups.google.com/group/vertx.
To view this discussion on the web, visit https://groups.google.com/d/msgid/vertx/7c031397-e615-4d48-9f2a-920c68151045%40googlegroups.com.
On Jul 25, 2016, at 6:22 AM, Yves Peckstadt <pecksta...@gmail.com> wrote:
--
You received this message because you are subscribed to the Google Groups "vert.x" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx+un...@googlegroups.com.
Visit this group at https://groups.google.com/group/vertx.
To view this discussion on the web, visit https://groups.google.com/d/msgid/vertx/1e7e7afb-9deb-4223-ad56-9c1b7fb1fe25%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "vert.x" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx+un...@googlegroups.com.
Visit this group at https://groups.google.com/group/vertx.
To view this discussion on the web, visit https://groups.google.com/d/msgid/vertx/7ed6f80b-8412-47c3-bda4-d991a3cc3e58%40googlegroups.com.
On Jul 26, 2016, at 10:32 AM, Yves Peckstadt <pecksta...@gmail.com> wrote:Thanks for the feedback. I am taking a look at this. Hopefully I can pinpoint the GC problem more. Has been a pretty annoying experience so far finding this problem lol. Not the fault of Vertx of course.A few maybe stupid questions:* I guess the only way to get the java.util.PriorityQueue usage down is to use the eventBus less?
* Regarding spreading the load more over multiple event loops. This would require me to create more Verticles and probably over engineer everything a bit. Would creating too many verticles be cause of concern performance wise? I know that one verticle = 1 thread and event loop and same threads are used by multiple event loops so I am wondering that by doing this I would cause for slowdown instead of performance improvements as too many event loops would be using the same threads at the same time.
Thanks.--
You received this message because you are subscribed to the Google Groups "vert.x" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx+un...@googlegroups.com.
Visit this group at https://groups.google.com/group/vertx.
To view this discussion on the web, visit https://groups.google.com/d/msgid/vertx/1bf48458-26dd-4cb5-bdd2-05095884f378%40googlegroups.com.