صف الخلل
عند إنشاء مثيل لـ ServiceBusReceiverAsyncClient
يتم إنشاء حقلي مثيل LockContainer
.
كل متغير (في مُنشئ LockContainer
) يشترك في Flux من أجل تنظيف الموارد بشكل دوري. تستخدم lambda في عملية التنظيف مثيل حاوية القفل نفسها ، لذلك سيواصل Flux الرجوع إلى مثيل حاوية القفل حتى يتم التخلص من المستهلك.
المسألة هي أنه عندما ServiceBusReceiverAsyncClient
مغلق، و LockContainer
لا يتم أغلق المتغيرات أيضا، والذي يسبب تسرب الذاكرة.
لإعادة إنتاج
من أجل إعادة إنشاء مثيل ServiceBusReceiverAsyncClient
واستدعاء close
و start
بشكل متكرر. استخدم Visual VM لتتبع استخدام الذاكرة مع عمليات تفريغ الكومة.
هذا هو نمط استخدام الذاكرة الذي يجب أن تراه (زيادة طفيفة ولكن ثابتة في استخدام الذاكرة):
وهذه هي الطريقة التي سيبدو بها عدد المثيلات في الكومة وأحجامها المحتجزة بمرور الوقت:
سلوك متوقع
يجب إغلاق مثيلات LockContainer عندما يكون العميل مغلقًا وبالتالي لا تتسرب إلى الذاكرة.
الإعداد (يرجى استكمال المعلومات التالية):
قائمة التحقق من المعلومات
يرجى التأكد من أنك قد أضفت جميع المعلومات التالية أعلاه وتحقق من الحقول المطلوبة وإلا فسوف نتعامل مع المُصدر على أنه تقرير غير مكتمل
مرحبًا ، لقد فتحت للتو علاقات عامة مع إصلاح لهذه المشكلة: https://github.com/Azure/azure-sdk-for-java/pull/17993.
يرجى إعلامي إذا كنت بحاجة إلى أي تغييرات أو مزيد من المعلومات.
تحياتي الحارة!
شكرا للتحقق من العلاقات العامة conniey ! هل يمكننا توقع إصدار جديد قريبًا؟ تحياتي الحارة!
marciopd سيكون لدينا إصدار في يناير.
تم الإصلاح بواسطة # 17993