Java org.jboss.netty.channel.ChannelFuture.awaitUnterruptibly()在使用SSL/TLS关闭通道时挂起
如果后端使用Java org.jboss.netty.channel.ChannelFuture.awaitUnterruptibly()在使用SSL/TLS关闭通道时挂起,java,nio,netty,Java,Nio,Netty,如果后端使用SSLHandler,而前端不使用,则会出现此问题: 当前端连接到后端时,ChannelHandler:“SSLException:不是SSL/TLS记录:47455…”会在后端引发(预期)异常。然后,后端尝试关闭导致此异常的频道,但ChannelFuture.waitingunterruptibly()返回的channel.close()将不确定地挂起。此外,前端也没有例外。Channel.write()的ChannelFuture完成时没有任何问题 如何在后端强制关闭此频道?为什
SSLHandler
,而前端不使用,则会出现此问题:
当前端连接到后端时,ChannelHandler
:“SSLException
:不是SSL/TLS记录:47455…”会在后端引发(预期)异常。然后,后端尝试关闭导致此异常的频道,但ChannelFuture.waitingunterruptibly()
返回的channel.close()
将不确定地挂起。此外,前端也没有例外。Channel.write()
的ChannelFuture
完成时没有任何问题
如何在后端强制关闭此频道?为什么channel.close()挂起
编辑:
StatefulTcpServer.haltConnection(String connectionId)
挂起,因为future.waitingunterruptibly()代码>不返回
我们使用的是3.3.1.Final版本
编辑2:
在后端当ChannelFuture.waitingunterruptibly()
hangs你能给我们看一下代码并包括一个线程转储吗?我在前端和后端添加了服务器类的源代码。如果你提到你在代码中使用Netty,这个问题会更容易理解(至少这是线程转储显示的内容)