我有一个在这种情况下可以工作的测试用例
那时,最终的ipv6处于离线状态(未连接wifi),从不连接,而挂起直到超时。第一次调用,使SocketChannel.connect返回false,这很好,然后它通过SelectableChannel.register启动异步连接。不幸的是,它挂在jdk代码中的某个地方.....嗯,我想我接下来可以进行堆栈转储并添加更多信息。
以前有没有人看过这个问题? jdk 9.0.4
(我想我也必须拔掉插头并升级到jdk10,希望这很容易-手指交叉)。
更新1:Ok Profiler毫无帮助,因为它是nio,它是异步的,意味着它位于选择器上等待(预期并预期将全部触发),另一个线程位于将来等待其解析,直到选择器触发并完成永远不会发生的连接(仅脱机)。我想我也会升级jdk并对其进行测试。
更新2:升级到jdk12,结果相同。
是否有人在localhost上进行过测试,服务器绑定到端口0,客户端连接到端口,客户端最终在nio中使用ipv6绑定到端口?当测试套件不能离线工作而只能在线工作时,这非常烦人。因此,我正在尝试解决此问题。
谢谢, 院长