После того, как мое приложение работает некоторое время, мои потоки застревают во время ожидания регистрации канала.
Вот код:
bootstrap = new Bootstrap()
.group(new EpollEventLoopGroup())
.channel(EpollSocketChannel.class)
.option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)
.handler(new MyChannelInitializer(this));
ChannelFuture registerFuture = bootstrap.register().sync();
Channel channel = registerFuture.channel();
//Do other stuffs
channel.connect(...).addListener(...);
Через некоторое времяблокировка потоков во время sync()
.
Вот трассировка стека:
Name: worker-thread-1
State: WAITING on io.netty.channel.DefaultChannelPromise@17ba258
Total blocked: 37 Total waited: 43,574
Stack trace:
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:502)
io.netty.util.concurrent.DefaultPromise.await(DefaultPromise.java:231)
io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:131)
io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:30)
io.netty.util.concurrent.DefaultPromise.sync(DefaultPromise.java:337)
io.netty.channel.DefaultChannelPromise.sync(DefaultChannelPromise.java:119)
io.netty.channel.DefaultChannelPromise.sync(DefaultChannelPromise.java:30)
...
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
java.lang.Thread.run(Thread.java:748)
Почему мой поток заблокирован здесь?Соединения пока нет, только создание канала и его регистрация в цикле событий.