استخدام غير آمن للهاش في Logster

أثناء استخدام discourse في تطبيق Ruby متعدد الخيوط وخادم (TruffleRuby/Puma)، يتم إنتاج أخطاء بسبب الاستخدام غير الآمن للـ hash في gem logster بالقرب من هذا القسم:

https://github.com/discourse/logster/blob/31849a4154c6b1edb05fe6d241076329aa228359/lib/logster/logger.rb#L23-L29

3 إعجابات

حسنًا، هل هناك أي فرصة لإضافة Mutex هناك في طلب سحب (PR)؟ يبدو أنه النهج الصحيح لحل هذه المشكلة.

(بالمناسبة @dev-managers / @jomaxro أعتقد أنه من أجل التوافق مع المشاريع الأخرى يجب أن نبقي مشاكل logster مفعلة على github؟ أنا أؤيد ذلك)

4 إعجابات

تم تقسيم مشاركة إلى موضوع جديد: On which Discourse managed gems should we enable GitHub issues

إذا تم استخدام Mutex، فيجب استخدامه على كل من عمليات الكتابة والقراءة لضمان الصحة.

تبدو هذه الوظيفة مناسبة بشكل أفضل للمتغيرات المحلية الخاصة بالألياف/الخيوط.
هل من الممكن وجود مثيلات متعددة لـ Logster::Logger، أم أنه دائمًا مثيل واحد فقط؟ إذا كان هناك مثيلات متعددة، فنحن بحاجة بطريقة ما إلى جعل معرف الكائن الخاص بالمثيل جزءًا من المفتاح المستخدم لعمليات البحث المحلية الخاصة بالألياف/الخيوط.

إعجاب واحد (1)

بالتأكيد! أعتقد أن هذا يجب أن يصلح الأمر ويبسط هذا الكود بشكل كبير :+1:

إعجابَين (2)

أنا متأكد من وجود مثيل واحد فقط، ولكني أضفت بعض الحماية.

لقد اخترت عدم استخدام define_finalizer حيث أن المستهلكين مسؤولون عن التنظيف، وإلا فإن المحاسبة تصبح معقدة للغاية.

تم إغلاق هذا الموضوع تلقائيًا بعد 3 أيام. لم يعد يُسمح بالردود الجديدة.