Kann maxmind db mit gültigem Schlüssel nicht herunterladen, aber Download aus Container funktioniert

Der Build ist deswegen fehlgeschlagen. Ich habe die ENV-Variable entfernt und ohne sie neu kompiliert. Dann ging es an das Debugging innerhalb des Containers. Dort habe ich den Schlüssel zu discourse.conf hinzugefügt, es schlägt immer noch fehl.

(Zum Glück habe ich das getan, bevor ich dem Kunden gesagt habe, dass er mir einen ungültigen Schlüssel gegeben hat!)

Ich habe ein puts zur Rake-Aufgabe hinzugefügt, um die URL auszugeben, von der die Datenbank heruntergeladen werden soll, wie folgt:

    url =
      "https://download.maxmind.com/app/geoip_download?license_key=#{GlobalSetting.maxmind_license_key}&edition_id=#{name}&suffix=tar.gz"

    gz_file =
      FileHelper.download(
        url,
        max_file_size: 100.megabytes,
        tmp_file_name: "#{name}.gz",
        validate_uri: false,
        follow_redirect: false,
      )

    if gz_file.nil?
      puts "no gzfile"
    end
    puts "Got file #{gz_file} for #{url}"
    filename = File.basename(gz_file.path)

Jetzt bekomme ich das:

root@web-only:/var/www/discourse# rake maxminddb:get
Plugin name is 'discourse-topic-voting', but plugin directory is named 'discourse-voting'
Downloading MaxMindDb's GeoLite2-City...
no gzfile
Got file  for https://download.maxmind.com/app/geoip_download?license_key=VALID_KEY_IS_HERE&edition_id=GeoLite2-City&suffix=tar.gz
rake aborted!
NoMethodError: undefined method `path' for nil:NilClass (NoMethodError)

    filename = File.basename(gz_file.path)
                                    ^^^^^
/var/www/discourse/lib/discourse_ip_info.rb:52:in `mmdb_download'
/var/www/discourse/lib/tasks/maxminddb.rake:9:in `block (2 levels) in <main>'
/var/www/discourse/lib/tasks/maxminddb.rake:7:in `each'
/var/www/discourse/lib/tasks/maxminddb.rake:7:in `block in <main>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => maxminddb:get
(See full trace by running task with --trace)

Es gab ein anderes Thema, bei dem das Problem darin bestand, dass die Seite von Maxmind blockiert wurde. Ich habe versucht, diese URL mit wget vom Server in Frage aus herunterzuladen, und das hat erfolgreich funktioniert.

Mir scheint, dass FileHelper.download nicht viel von einem Helper ist und stillschweigend nil anstelle einer Datei zurückgibt. Die Datei ist nur 44 MB groß, also liegt es nicht daran. Wenn ich die vollständigen Header mit wget überprüfe, sehe ich keine Umleitung.

Irgendwelche Ideen, was das Problem sein könnte?

Gibt es einen Grund, diesen Fehler nicht abzufangen und einen Build mit einem ungültigen Schlüssel abzuschließen? Vielleicht nur eine Warnung ausgeben?

1 „Gefällt mir“

Funktioniert es besser mit follow_redirect: true?

Aufgrund einer kürzlichen Änderung hat MaxMind seine URL zum Herunterladen geändert, aber Sie können die ursprüngliche beibehalten, solange Sie die Weiterleitung zulassen.

2 „Gefällt mir“

Ich frage mich, ob es ein Missverständnis gab und es nicht wirklich der 1. Mai ist, an dem das beginnt. :thinking:

2 „Gefällt mir“

OMG. Ja. Ich weiß nicht, warum ich das nicht einfach geändert und gedacht habe, dass ich wusste, dass es nicht weiterleitet.

4 „Gefällt mir“

Super, zusammengeführt, lass uns bitte wissen, wie es läuft!

3 „Gefällt mir“

Habe versucht, den MaxMind-Schlüssel unseres Forums wieder in Gebrauch zu nehmen. Wir erhalten immer noch den ursprünglichen Fehler, wenn wir versuchen, neu zu erstellen.

1 „Gefällt mir“

Könnten Sie prüfen, ob Sie die neueste Discourse-Version verwenden? Es funktioniert für Jay; ich sehe keinen Grund, warum es bei Ihnen nicht funktionieren sollte, besonders wenn es MaxMinds Empfehlung folgt. :thinking:

1 „Gefällt mir“

Ich bin mir nicht sicher, wie das nicht der Fall sein sollte, wenn die App neu erstellt wird.

Sie haben Recht. Man weiß es aber nie. :smile: Welche Hash-Version wird angezeigt? Das können wir zumindest schnell überprüfen.

Ich habe die MaxMind-Ankündigung noch einmal gelesen, aber ich sehe nichts außer der Änderung der URL oder der Zulassung von Weiterleitungen. :thinking:

1 „Gefällt mir“

Führen Sie tests-passed oder latest-release aus?

Wir sind auf tests-passed, zumindest soweit ich weiß.

Was ist die URL oder den Commit, wenn Sie den Quellcode anzeigen.

Ende der Protokolle des abgestürzten Builds:

Downloading MaxMindDB...
Javascript komprimieren und Quellkarten generieren
I, [2024-03-26T13:27:38.305597 #1] INFO -- : Asynchrone Prozesse beenden
I, [2024-03-26T13:27:38.307312 #1]  INFO -- : Sende INT an HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
I, [2024-03-26T13:27:38.307891 #1]  INFO -- : Sende TERM an exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 111
111:signal-handler (1711459658) SIGTERM empfangen, Herunterfahren wird geplant...
2024-03-26 13:27:38.307 UTC [42] LOG:  schnelle Herunterfahrensanforderung empfangen
2024-03-26 13:27:38.314 UTC [42] LOG:  aktive Transaktionen abbrechen
2024-03-26 13:27:38.321 UTC [42] LOG:  Hintergrundarbeiter "logical replication launcher" (PID 51) mit Exit-Code 1 beendet
2024-03-26 13:27:38.322 UTC [46] LOG:  wird heruntergefahren
111:M 26 Mar 2024 13:27:38.353 # Benutzer hat Herunterfahren angefordert...
111:M 26 Mar 2024 13:27:38.353 * Speichere den letzten RDB-Schnappschuss vor dem Beenden.
2024-03-26 13:27:38.415 UTC [42] LOG:  Datenbanksystem ist heruntergefahren
111:M 26 Mar 2024 13:27:39.896 * DB auf Festplatte gespeichert
111:M 26 Mar 2024 13:27:39.896 # Redis ist nun bereit zum Beenden, auf Wiedersehen...
FEHLGESCHLAGEN
--------------------
Pups::ExecError: cd /var/www/discourse &amp;&amp; su discourse -c 'bundle exec rake themes:update assets:precompile' fehlgeschlagen mit Rückgabe #&lt;Process::Status: pid 3889 exit 1&gt;
Ort des Fehlers: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec fehlgeschlagen mit den Parametern {"cd"=&gt;"$home", "hook"=&gt;"assets_precompile", "cmd"=&gt;["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
bootstrap fehlgeschlagen mit Exit-Code 1
** BOOTSTRAP FEHLGESCHLAGEN ** bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen, es kann mehr als eine geben.
./discourse-doctor kann bei der Diagnose des Problems helfen.
fe4eec7726fdbe08aaa2691e806bb17423a8f4eaedb8414397e3097d725e04c7

Commit: <Commits · discourse/discourse · GitHub;

Als spätere Anmerkung: Ich habe die Seite, auf der dies geschah, nicht verlinkt, da eines der Besatzungsmitglieder einen Kernel-Bug testete in einem separaten Container auf demselben Server und versehentlich den gesamten Server zum Absturz brachte. Das Verlinken der Seite hätte also überhaupt nicht geholfen.

1 „Gefällt mir“

Tritt es immer noch auf, @Firepup650?

Ich wollte schon seit einiger Zeit neu aufbauen, also werde ich einen durchführen und sehen.

1 „Gefällt mir“

Ich kann bestätigen, dass das Problem nicht mehr auftritt. Unser Forum wird jetzt wieder einwandfrei neu aufgebaut.

4 „Gefällt mir“

Dieses Thema wurde nach 26 Stunden automatisch geschlossen. Neue Antworten sind nicht mehr möglich.