Aeron流/会话在一台主机上不可用并且永远不会恢复



我在多播上有一个aeron流,一些订阅了流的主机看到新的会话,但是他们的图像很快就不可用了。然后,这些主机再也不会看到这些图像再次可用。当其他主机成功接收到来自同一会话的数据时。

在我的aeron流中,我有3个主机A, B和C,它们都发布和订阅。当我从A开始发布时,B和C最初都看到它(通过事件日志中的AVAILABLE_IMAGE事件确认)。但是,在11秒之后,主机C报告镜像不可用。然后,即使重新启动发布(来自该主机的发布重用相同的sessionid),它也永远不会再次可用。与此同时,主机B继续从这个会话成功地接收数据。重新启动驱动程序后,一切正常。

来自C的订阅和来自B的订阅之间的一个区别是,订阅C使用tether=true。还应该注意的是,从主机A发布并由主机B接收的同一多播组上的其他流会话正常工作,因此似乎不是网络问题。

我希望当它们继续看到这些会话的数据时,这些图像再次可用。然而,这从来没有发生过。

是什么导致了最初不可用的映像,为什么它最终不尝试重新创建它?

这只是由于aeron 1.40.0和更早版本中存在的各种错误而发生的。截至今天,我所知道的所有导致会话卡住的原因都已提交了修复程序。

最新更新