Azure-sdk-for-java: [BUG] Pérdida de memoria en ServiceBusReceiverAsyncClient close

Creado en 6 dic. 2020  ·  3Comentarios  ·  Fuente: Azure/azure-sdk-for-java

Describe el error
Cuando se crea una instancia de ServiceBusReceiverAsyncClient se crean dos campos de instancia LockContainer .

Cada variable (en el constructor de LockContainer ) se suscribe a Flux para limpiar los recursos periódicamente. La lambda utilizada en la limpieza usa la instancia del contenedor de bloqueo en sí, por lo que Flux seguirá haciendo referencia a la instancia del contenedor de bloqueo hasta que se elimine el consumidor.

La cuestión es que cuando ServiceBusReceiverAsyncClient está cerrado, los LockContainer variables que no están siendo también cerraron, lo que provoca una pérdida de memoria.

Reproducir
Para reproducir, cree una instancia ServiceBusReceiverAsyncClient y llame repetidamente a close y start . Utilice Visual VM para realizar un seguimiento del uso de la memoria con volcados de pila.

Este es el patrón de uso de la memoria que debería ver (un aumento leve pero constante en el uso de la memoria):
Screenshot 2020-12-05 at 23 53 01

Y así es como se verán en el tiempo la cantidad de instancias en el montón y sus tamaños retenidos:
Screenshot 2020-12-05 at 23 55 07
Screenshot 2020-12-05 at 23 56 24

Comportamiento esperado
Las instancias de LockContainer deben cerrarse cuando el cliente está cerrado y, por lo tanto, no se filtran a la memoria.

Configuración (complete la siguiente información):

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

Lista de verificación de información
Por favor, asegúrese de haber agregado toda la siguiente información arriba y marque los campos obligatorios; de lo contrario, trataremos al emisor como un informe incompleto.

  • [X] Descripción del error agregada
  • [X] Pasos de reproducción agregados
  • [X] Información de configuración agregada
Client Service Bus customer-reported question

Todos 3 comentarios

Hola, acabo de abrir un PR con una solución para este problema: https://github.com/Azure/azure-sdk-for-java/pull/17993.

Por favor, avíseme si necesita algún cambio o más información.

¡Atentamente!

¡Gracias por consultar el PR @conniey ! ¿Podemos esperar un nuevo lanzamiento pronto? ¡Atentamente!

@marciopd tendremos un lanzamiento en enero.

Corregido por # 17993

¿Fue útil esta página
0 / 5 - 0 calificaciones