Azure-sdk-for-java: [BUG] Vazamento de memória no fechamento de ServiceBusReceiverAsyncClient

Criado em 6 dez. 2020  ·  3Comentários  ·  Fonte: Azure/azure-sdk-for-java

Descreva o bug
Quando uma instância de ServiceBusReceiverAsyncClient é criada, dois campos de instância LockContainer são criados.

Cada variável (no construtor de LockContainer ) se inscreve no Flux para limpar recursos periodicamente. O lambda usado na limpeza usa a própria instância do contêiner de bloqueio, então o Flux continuará referenciando a instância do contêiner de bloqueio até que o consumidor seja descartado.

O problema é que quando ServiceBusReceiverAsyncClient é fechado, as variáveis LockContainer não estão sendo fechadas também, o que causa um vazamento de memória.

Reproduzir
Para reproduzir, crie uma instância ServiceBusReceiverAsyncClient e chame repetidamente close e start . Use o Visual VM para rastrear o uso de memória com despejos de heap.

Este é o padrão de uso de memória que você deve ver (um aumento leve, mas constante no uso de memória):
Screenshot 2020-12-05 at 23 53 01

E é assim que o número de instâncias no heap e seus tamanhos retidos serão parecidos com o tempo:
Screenshot 2020-12-05 at 23 55 07
Screenshot 2020-12-05 at 23 56 24

Comportamento esperado
As instâncias do LockContainer devem ser fechadas quando o cliente é fechado e, portanto, não vazam para a memória.

Configuração (preencha as seguintes informações):

  • SO: Mac / Linux
  • IDE: IntelliJ
  • 7.0.0

Lista de verificação de informações
Certifique-se de ter adicionado todas as informações a seguir acima e verifique os campos obrigatórios, caso contrário, trataremos o emissor como um relatório incompleto

  • [X] Descrição do bug adicionada
  • [X] Etapas de reprodução adicionadas
  • [X] Informações de configuração adicionadas
Client Service Bus customer-reported question

Todos 3 comentários

Olá, acabei de abrir um PR com uma correção para esse problema: https://github.com/Azure/azure-sdk-for-java/pull/17993.

Por favor, deixe-me saber se você precisar de alguma mudança ou mais informações.

Atenciosamente!

Obrigado por verificar o PR @conniey ! Podemos esperar um novo lançamento em breve? Atenciosamente!

@marciopd teremos um lançamento em janeiro.

Corrigido por # 17993

Esta página foi útil?
0 / 5 - 0 avaliações