EventHubConsumerClient Apache Qpid 内存泄漏?

EventHubConsumerClient Apache Qpid memory leak?

我正在通过 EventHubConsumerClient 上的 receiveFromPartition 方法从 Azure EventHub 集群同步读取事件 class。

我是这样创建客户端的:

EventHubConsumerClient eventHubConsumerClient = new EventHubClientBuilder()
            .connectionString(eventHubConnectionString)
            .consumerGroup(consumerGroup)
            .buildConsumerClient());

然后我只使用 ScheduledExecutorService 通过以下方式每 1.5 秒检索一次事件:

IterableStream<PartitionEvent> receivedEvents = eventHubConsumerClient.receiveFromPartition(
                partitionId, 1, eventPosition);

SDK V3 中的等效逻辑工作正常(使用 PartitionReceivers),但现在我在 JVM 中看到 OOM。

运行 针对本地版本逻辑的分析器我看到大部分堆(90%,主要在 OG 中)被 byte[]s 占用,由 org.apache.qpid.proton.codex.CompositeReadableBuffer。当我分析 V3 逻辑时,这种模式不存在。

什么可能导致此处的 AMQP 消息泄漏,我是否需要进一步与 SDK 交互,例如在每次调用后关闭我不知道的连接?

任何建议将不胜感激,谢谢!

原来这是一个错误,在这里解决了:https://github.com/Azure/azure-sdk-for-java/issues/13775