MaxMindDB not found error

I have some errors in logs

red:

ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "groups" does not exist LINE 1: SELECT "groups"."id", "groups"."name" FROM "groups" WHERE

yellow

Failed to handle exception in exception app middleware : PG::UndefinedTable: ERROR: relation "groups" does not exist LINE 1: 
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
إعجاب واحد (1)

You may wish to search for the maxmind issue.

4 إعجابات

I do not find an authoritative answer on searching for the issue. Can someone who knows link it here?

Are these MaxMindDB warnings to be ignored? Rebuilding doesn’t seem to fix the issue. I have been getting them for months.

Now you can! Configure MAXMIND for reverse IP lookups

3 إعجابات

We are using Discourse behind a reverse proxy, so all users have the same IP, and we would need the GeoIP lookup - I do not see the option to disable the IP lookup altogether, instead of going through the registration process and obtaining a license for something that we are not needed, only in order to eliminate the errors from the logs…

Do I miss a setting, on how to disable this?

You should fix that. I think topics like How to set up Discourse on a server with existing Apache sites might have the instructions for that.

I think that if you just don’t set the maxmind key you’ll get a warning when you rebuild but it won’t hurt anything.

إعجابَين (2)

ألن يكون من المنطقي إخفاء وتخطي البحث عن GeoIP من إعدادات مسؤول المستخدم، إذا لم يتم تكوين مفتاح ترخيص؟ أو بدلاً من ذلك، عرض معلومات/عنصر نائب يفيد بإمكانية إجراء بحث GeoIP عن طريق تعيين مفتاح ترخيص باتباع https://meta.discourse.org/t/configure-maxmind-for-reverse-ip-lookups/173941؟

التكرار عبر سجلات الأخطاء لمراقبة تشغيل النظام هو ممارسة جيدة، ومن المزعج قضاء الوقت في التحقيق في الأخطاء، فقط لمعرفة أنها متوقعة لأن عملية ما يتم محاولة تنفيذها ومن المتوقع أن تفشل افتراضيًا ويمكن تخطيها بسهولة عن طريق التحقق من إعداد واحد :wink:.

يمكنني محاولة فتح طلب سحب على GitHub، إذا كنت توافق بشكل أساسي. ولكن ربما أغفل شيئًا وأنه ليس بهذه السهولة أو له عيوب لا أراها.

4 إعجابات

يبدو جيدًا، سأكون سعيدًا بطلب سحب (PR)

4 إعجابات

تم رفع طلب السحب، ولكني بحاجة إلى بعض المساعدة لتطبيق الاختبارات، في الكود وكيفية الاختبار على نسخة Discourse قيد التشغيل: UX: Show if MaxMind key is missing on IP lookup by MichaIng · Pull Request #18993 · discourse/discourse · GitHub

3 إعجابات

لقد كنت أتجاهل هذه:

لم يتم العثور على MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb): لا يوجد مثل هذا الملف أو الدليل @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
لم يتم العثور على MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb): لا يوجد مثل هذا الملف أو الدليل @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb

… ولكنني الآن أبحث عن طريقة لكبتها.

يمكنني ببساطة تكوين MaxMind، ولكني لا أحتاجه حقًا.

تم دمج PR أعلاه في 2023-11-23 – ألا ينبغي أن أرى هذه الأخطاء؟

تم التراجع عنه مرة أخرى نظرًا لأنه كان معقدًا للغاية لتعديل الاختبارات الآلية له. تم بذل محاولة، لكنها أعادت إضافة التحذيرات، مما أفسد الغرض من PR الخاص بي في المقام الأول:

وبالتالي تم التراجع عن كليهما:

كانت المشكلة على الأرجح هي جعل قراءة قاعدة البيانات تعتمد على وجود مفتاح MaxMind. ومع ذلك، يمكن إضافة قاعدة البيانات بطرق أخرى. في نسختنا الخاصة، في هذه الأثناء، نضيف قواعد بيانات DB-IP المجانية، والتي لا تتطلب حسابًا. لذلك، فإن PR الخاص بي كان سيفسد الطريقة التي نفعل بها ذلك الآن. نفس الشيء تسبب في فشل الاختبارات التي أصلحتها في PR الخاص بي. ولكن على الفرع الرئيسي و/أو في بعض الإضافات، تسبب هذا على الأرجح في مشاكل أخرى.

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

  • فقط إذا كان File.join(path, "GeoLite2-City.mmdb") موجودًا، قم بتحميله باستخدام mmdb_load.
  • قد يكون خرج واجهة المستخدم المعدل مشكلة أيضًا لبعض الاختبارات، ولكن يجب أن يكون من الممكن إضافته دون كسر الاختبارات، كحل بديل فقط إذا لم يكن هناك موقع متاح ثم كان العلم المقابل صحيحًا، والذي تم تعيينه باستخدام ret[:no_license] = true. ولكن يجب إعادة تسميته إلى no_db أو شيء من هذا القبيل للإشارة إلى أنه لا يتعلق بما إذا كان مفتاح ترخيص MaxMind قد تم تحديده، ولكن ما إذا كانت ملفات قاعدة البيانات الفعلية موجودة أم لا.
إعجاب واحد (1)

شكرا على المعلومات! يبدو من المنطقي التحقق من الملفات قبل محاولة تحميلها. لست الشخص المناسب لتطوير حل، لذا سأحاول تمكين MaxMind لتقليل سجلاتي.