مرحبًا،
نحن نقوم تلقائيًا بتعليق الملفات الشخصية التي لم تُستخدم لمدة عام على الأقل باستخدام إضافة discourse-auto-suspend.
بعد ذلك، نقوم بحذف هذه الملفات الشخصية مع جميع منشوراتها وموضوعاتها.
(لدينا إعدادات delete user max post age = 3700 و delete all posts max = 999)
حتى الآن، قمت بحذف أكثر من 1500 مستخدم خلال الأشهر القليلة الماضية، مع آلاف المنشورات وربما أكثر من ألف موضوع.
لكنني الآن أواجه مستخدمًا بدأ النظام في حذف منشوراته، لكن المستخدم لا يزال يحتفظ بـ 68 منشورًا و63 موضوعًا بغض النظر عن عدد المرات التي أضغط فيها على زر حذف المنشورات والمواضيع.
عند النظر إلى /logs، يظهر التحذير التالي:
فشل في معالجة الاستجابة المختطفة بشكل صحيح: لم يتم العثور على موضوع بمعرف 'id'=569
عندما أتحقق من جدول topics عبر إضافة مستكشف البيانات، لا يوجد موضوع بمعرف 569.
المعرف 568 موجود بتاريخ 2017-05-22 14:01:35.419842، يليه 570 بتاريخ 2017-05-22 14:20:27.610993.
لكن عند النظر إلى جدول posts، أجد أن هناك topic_id بقيمة 569 يحتوي على 9 منشورات.
يبدو أن هناك عدم اتساق في قاعدة البيانات. في مايو 2017، لم أكن مدير النظام بعد، لذا لا أعرف ما إذا كانت هناك مشاكل نظام في ذلك الوقت.
هل توجد أي طريقة لحل المشكلة بحيث يستمر زر الحذف في حذف الإدخالات؟
إليك تتبع الأخطاء (backtrace) الخاص بهذا التحذير:
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activerecord-5.2.0/lib/active_record/relation/finder_methods.rb:346:in `raise_record_not_found_exception!'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activerecord-5.2.0/lib/active_record/relation/finder_methods.rb:454:in `find_one'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activerecord-5.2.0/lib/active_record/relation/finder_methods.rb:433:in `find_with_ids'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activerecord-5.2.0/lib/active_record/relation/finder_methods.rb:69:in `find'
/var/www/discourse/app/serializers/post_serializer.rb:397:in `topic'
/var/www/discourse/app/serializers/post_serializer.rb:87:in `topic_slug'
(eval):22:in `_fast_attributes'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:468:in `rescue in attributes'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:455:in `attributes'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:480:in `_serializable_hash'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:359:in `serializable_hash'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:347:in `as_json'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.0/lib/active_support/json/encoding.rb:35:in `encode'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.0/lib/active_support/json/encoding.rb:22:in `encode'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.0/lib/active_support/core_ext/object/json.rb:41:in `to_json'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:331:in `to_json'
/var/www/discourse/app/models/web_hook.rb:95:in `generate_payload'
/var/www/discourse/lib/post_destroyer.rb:48:in `destroy'
/var/www/discourse/app/models/user.rb:789:in `block in delete_all_posts!'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activerecord-5.2.0/lib/active_record/relation/delegation.rb:41:in `each'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activerecord-5.2.0/lib/active_record/relation/delegation.rb:41:in `each'
/var/www/discourse/app/models/user.rb:788:in `delete_all_posts!'
/var/www/discourse/app/controllers/admin/users_controller.rb:51:in `block in delete_all_posts'
/var/www/discourse/lib/hijack.rb:56:in `instance_eval'
/var/www/discourse/lib/hijack.rb:56:in `block in hijack'
/var/www/discourse/lib/scheduler/defer.rb:94:in `block in do_work'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rails_multisite-2.0.4/lib/rails_multisite/connection_management.rb:63:in `with_connection'
/var/www/discourse/lib/scheduler/defer.rb:89:in `do_work'
/var/www/discourse/lib/scheduler/defer.rb:79:in `block (2 levels) in start_thread'








