Upgrade/Rebuilds schlagen aufgrund von MaxMind DB EOL fehl

Leute,

Hoffentlich kann mir hier jemand helfen. Seit über 12 Monaten hatte ich keine Probleme mit Upgrades meines Forums, das in einem Docker-Container auf EC2 läuft.

Ich habe Folgendes versucht:

  • Launcher-Bereinigung, aber keine Probleme mit dem Speicherplatz
  • Neuester git pull
  • Mehrfacher Neuaufbau der App
  • Sogar ein discourse-setup versucht und wollte eine DB-Wiederherstellung ausprobieren :frowning:
  • Server-Neustart
  • apt-get update; apt-get upgrade

Hier ist das Ende des Logs:

Done compressing all JS files : 88.88 secs
rake aborted!
SocketError: Failed to open TCP connection to geolite.maxmind.com:443 (getaddrinfo: No address associated with hostname)
/var/www/discourse/lib/final_destination.rb:411:in `safe_session'
/var/www/discourse/lib/final_destination.rb:362:in `safe_get'
/var/www/discourse/lib/final_destination.rb:131:in `get'
/var/www/discourse/lib/file_helper.rb:51:in `download'
/var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download'
/var/www/discourse/lib/tasks/assets.rake:220:in `block (3 levels) in <top (required)>'
/var/www/discourse/lib/tasks/assets.rake:219:in `each'
/var/www/discourse/lib/tasks/assets.rake:219:in `block (2 levels) in <top (required)>'

Caused by:

SocketError: getaddrinfo: No address associated with hostname

/var/www/discourse/lib/final_destination.rb:411:in `safe_session'
/var/www/discourse/lib/final_destination.rb:362:in `safe_get'
/var/www/discourse/lib/final_destination.rb:131:in `get'
/var/www/discourse/lib/file_helper.rb:51:in `download'
/var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download'
/var/www/discourse/lib/tasks/assets.rake:220:in `block (3 levels) in <top (required)>'
/var/www/discourse/lib/tasks/assets.rake:219:in `each'
/var/www/discourse/lib/tasks/assets.rake:219:in `block (2 levels) in <top (required)>'

Tasks: TOP => assets:precompile

(See full trace by running task with --trace)

I, [2019-12-30T18:56:27.608998 #1] INFO -- : Downloading MaxMindDB...
Compressing Javascript and Generating Source Maps
I, [2019-12-30T18:56:27.633923 #1] INFO -- : Terminating async processes
I, [2019-12-30T18:56:27.637383 #1] INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/10/bin/postmaster -D /etc/postgresql/10/main pid: 49
I, [2019-12-30T18:56:27.639770 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 166
166:signal-handler (1577732187) Received SIGTERM scheduling shutdown...
2019-12-30 18:56:27.639 UTC [49] LOG: received fast shutdown request
2019-12-30 18:56:27.654 UTC [49] LOG: aborting any active transactions
166:M 30 Dec 2019 18:56:27.666 # User requested shutdown...
166:M 30 Dec 2019 18:56:27.694 * Saving the final RDB snapshot before exiting.
2019-12-30 18:56:27.702 UTC [49] LOG: worker process: logical replication launcher (PID 58) exited with exit code 1
2019-12-30 18:56:27.711 UTC [53] LOG: shutting down
2019-12-30 18:56:27.819 UTC [49] LOG: database system is shut down
166:M 30 Dec 2019 18:56:27.885 * DB saved on disk
166:M 30 Dec 2019 18:56:27.886 # Redis is now ready to exit, bye bye...

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake assets:precompile' failed with return #<Process::Status: pid 507 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake assets:precompile'"]}
fcf17d793c27c4e87616420ead222cc3f4a9fc163f239a5542b1c9a092579b30

** FAILED TO BOOTSTRAP ** bitte scrollt nach oben und sucht nach früheren Fehlermeldungen, es könnte mehr als eine geben.
./discourse-doctor kann bei der Diagnose des Problems helfen.

Ich hoffe wirklich, dass mir jemand hier weiterhelfen kann.

Vielen Dank an alle.

Falls jemand die letzten unter der alten Lizenz veröffentlichten Dateien weiterhin verwenden möchte, habe ich sie alle auf archive.org gespeichert.

Alle Dateien wurden von MaxMind erstellt und unter der Creative Commons Attribution-ShareAlike 4.0 International License verteilt.

archive.org-URL MD5-Hash Last-Modified-Header
GeoLite2-City.tar.gz 7ba2c58b4e0eac6c08c6399aebdae26c Tue, 24 Dec 2019 17:46:00 GMT
GeoLite2-Country.tar.gz dc6224c648350d90f344a0c5c3ca5474 Tue, 24 Dec 2019 17:40:42 GMT
GeoLite2-ASN.tar.gz f3c9c5775fd226db6e8098675ff65861 Tue, 24 Dec 2019 14:16:58 GMT
GeoLite2-City-CSV.zip 89e5bf01a970b5668d74cf29a242d546 Tue, 24 Dec 2019 17:45:52 GMT
GeoLite2-Country-CSV.zip f50b518341de54fe48c5e34f13e24e99 Tue, 24 Dec 2019 17:40:41 GMT
GeoLite2-ASN-CSV.zip 463ccd73c104c52547fa50a84fc2f86e Tue, 24 Dec 2019 14:16:58 GMT

Archiv der Informationsseite (Screenshot)

Wir unterstützen nun die offiziell unterstützte Methode zum Abrufen von Datenbanken gemäß:

Wenn Sie regelmäßige MaxMind-Updates erhalten möchten, müssen Sie sich unter GeoLite sign up | MaxMind registrieren, um ein Konto zu erstellen und einen Lizenzschlüssel zu generieren.

Anschließend passen Sie Ihren Container an, indem Sie den Schlüssel im Abschnitt env: hinzufügen:

env:
   DISCOURSE_MAXMIND_LICENSE_KEY: ...hier den Schlüssel einfügen...

Die Korrektur stellt sicher, dass es keine Zeitbombe mehr gibt. Wenn kein Lizenzschlüssel vorhanden ist, werden wir niemals versuchen, die Dateien herunterzuladen.

Wir diskutieren mit MaxMind über die Möglichkeit, die aktualisierten Datenbanken in unseren neuen Basis-Images zu bündeln. Für Self-Hoster gibt es je nach Ergebnis zwei Alternativen:

  1. Keine IP-Auflösung auf der Benutzerprofilseite und der Admin-Seite, bis Sie eine Lizenz hinzufügen.

  2. Veraltete IP-Auflösung für bis zu N Tage, seit Sie ein Basis-Image erhalten haben (d. h. seit Sie ./launcher rebuild app ausgeführt haben).

Es ist sehr wahrscheinlich, dass (1) das Ergebnis für Self-Hoster sein wird.

Wir untersuchen auch andere Alternativen, aber unsere Hände sind ziemlich gebunden.

Ich bin stark dagegen, Funktionalität zum Kern hinzuzufügen, die IP-Abfragen über einen Webdienst durchführt, da dies Informationen an einen Dritten weitergibt. Es gibt nur zwei echte große Alternativen, und beide erfordern eine Registrierung.

@sam Ich habe eine kleine Feature-Anfrage: Könnte eine Einstellung im Admin-Bereich hinzugefügt werden, um den MaxMind-Lizenzschlüssel einzugeben?

Unwahrscheinlich in naher Zukunft, dies ist eine globale Einstellung, pro Site in einem Multisite ergibt keinen Sinn

Kriegt noch jemand diesen Fehler, wenn er versucht, ein MaxMind-Konto zu erstellen?

Ich kann bestätigen, dass wir problemlos ein Konto erstellen konnten. Bei Kontoproblemen müssen Sie sich an MaxMind wenden; hier können wir nicht weiterhelfen.

Ich versuche, von 2.3.8 auf 2.3.9 zu aktualisieren, aber nichts funktioniert.

Der relevante Fehler ist, soweit ich das beurteilen kann, der, der in diesem Thema diskutiert wird.

rake aborted!
SocketError: Failed to open TCP connection to geolite.maxmind.com:443 (getaddrinfo: Name or service not known)

In meiner app.yml habe ich für diesen env-Schalter die Werte 30, 100 und 0 ausprobiert:

DISCOURSE_REFRESH_MAXMIND_DB_DURING_PRECOMPILE_DAYS: 0

Aber es scheint keine Auswirkung zu haben (ich frage mich, ob er überhaupt richtig erkannt wird).

Was könnte ich sonst noch versuchen?

Danke an alle, die in den letzten Wochen an der schnellen Lösung gearbeitet haben. Ich musste das Gleiche mit Matomo machen, was weitaus schmerzhafter war (manuell).

Das bringt mich zu meiner Frage: Wo genau werden die MaxMind-Daten verwendet? Nur in Fällen, in denen Administratoren die IP-Adressen von Benutzern einsehen? Oder gibt es noch etwas anderes, das mir nicht einfällt?

Ich habe zwar bereits ein MM-Konto, frage mich aber, ob es sich lohnt, dies mit Dringlichkeit umzusetzen.

Es führt geografische Abfragen für IP-Adressen durch. Ich habe in letzter Zeit mehrere Installationen und Upgrades durchgeführt, ohne einen API-Schlüssel festzulegen, und Neubauten funktionieren einwandfrei (aktuelle Version ist Beta 10).

Außerdem ist es nicht schwierig, einen Schlüssel zum Herunterladen der Datenbank zu erhalten.

Ich hoffe, dass ich nächste Woche das discourse-setup aktualisieren kann, um den Schlüssel zu unterstützen.

Richtig, sie wird von Administratoren zur IP-Nachschlagefunktion für Benutzer verwendet. Außerdem für die Liste der „zuletzt verwendeten Geräte

Entschuldige die Störung, aber ich wollte fragen, ob geplant ist, die Möglichkeit zu behalten, die IP-Nachschlagefunktion zu deaktivieren. Es scheint mir nicht gut, Administratoren zu zwingen, einen Dienst eines Drittanbieters zu abonnieren. Ich selbst habe bereits einen Lizenzschlüssel für andere Zwecke, daher spreche ich hier allgemein.

Wenn Sie keinen Lizenzschlüssel eingeben, wird er deaktiviert. Es gibt nichts, das Administratoren zwingt, dies einzurichten.

Außerdem, falls es zu Verwirrung kommen sollte: Discourse sendet niemals IP-Adressen an einen Drittanbieter. Discourse lädt eine vollständige Datenbank mit IP-Standorten von MaxMind herunter und führt die Abfrage dann intern durch.

Super, danke für die Klärung!

Dies wird überarbeitet … dies wurde bereits auf die stabile Version zurückportiert.