Azure-sdk-for-java: [BUG] Fuite de mémoire dans ServiceBusReceiverAsyncClient fermer

Créé le 6 déc. 2020  ·  3Commentaires  ·  Source: Azure/azure-sdk-for-java

Décrivez le bogue
Lorsqu'une instance de ServiceBusReceiverAsyncClient est créée, deux champs d'instance LockContainer sont créés.

Chaque variable (dans le constructeur de LockContainer ) s'abonne à Flux afin de nettoyer périodiquement les ressources. Le lambda utilisé dans le nettoyage utilise l'instance de conteneur de verrouillage elle-même, de sorte que Flux continuera à référencer l'instance de conteneur de verrouillage jusqu'à ce que le consommateur soit éliminé.

Le problème est que lorsque ServiceBusReceiverAsyncClient est fermé, les variables LockContainer ne sont pas également fermées, ce qui provoque une fuite de mémoire.

Reproduire
Pour reproduire, créez une instance ServiceBusReceiverAsyncClient et appelez à plusieurs reprises close et start . Utilisez Visual VM pour suivre l'utilisation de la mémoire avec les vidages de tas.

Voici le modèle d'utilisation de la mémoire que vous devriez voir (une augmentation légère mais constante de l'utilisation de la mémoire) :
Screenshot 2020-12-05 at 23 53 01

Et voici à quoi ressembleront le nombre d'instances dans le tas et leurs tailles conservées dans le temps :
Screenshot 2020-12-05 at 23 55 07
Screenshot 2020-12-05 at 23 56 24

Comportement prévisible
Les instances de LockContainer doivent être fermées lorsque le client est fermé et ne doivent donc pas fuir dans la mémoire.

Configuration (veuillez compléter les informations suivantes) :

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

Liste de contrôle des informations
Veuillez vous assurer que vous avez ajouté toutes les informations suivantes ci-dessus et cochez les champs requis, sinon nous traiterons l'émetteur comme un rapport incomplet.

  • [X] Description du bogue ajoutée
  • [X] Étapes de reproduction ajoutées
  • [X] Informations de configuration ajoutées
Client Service Bus customer-reported question

Tous les 3 commentaires

Bonjour, je viens d'ouvrir un PR avec un correctif pour ce problème : https://github.com/Azure/azure-sdk-for-java/pull/17993.

S'il vous plaît laissez-moi savoir si vous avez besoin de changements ou de plus d'informations.

Meilleures salutations!

Merci d'avoir vérifié le PR @conniey ! Peut-on s'attendre à une nouvelle version bientôt ? Meilleures salutations!

@marciopd nous aurons une sortie en janvier.

Corrigé par #17993

Cette page vous a été utile?
0 / 5 - 0 notes