Sidekiq startet immer wieder neu, wie kann man das Problem beheben?

Hallo,

wir betreiben seit ca. 4 Jahren einen Discourse-Server mit zwei Containern und mehreren Domains und hosten ca. 20 Domains. Wir haben regelmäßige Updates erfolgreich durchgeführt. Anfang Oktober (ungefähr vom 8. bis 10. Oktober) stellten wir jedoch fest, dass keine Anmelde-E-Mails gesendet wurden, wahrscheinlich nach einem Discourse-Update. Wir bemerkten, dass der Sidekiq-Task nicht läuft und Sidekiq ständig neu startet.

Der einzige Unterschied zu den regulären Migrationen, die wir durchführen, ist, dass ich diesmal alle Postgres-Datenbanken manuell ändern musste, um die neueste vector-Erweiterung zu aktivieren. Es scheint, dass das Upgrade-Skript dies nur für die Hauptdatenbank discourse tun würde.

Symptome:

  1. Protokolle zeigen, dass Sidekiq alle paar Sekunden neu startet.

  2. Der Neustart ist mit der folgenden Fehlermeldung verbunden:

    /var/www/discourse/lib/demon/sidekiq.rb:31:in `heartbeat_check'
    config/unicorn.conf.rb:131:in `block (2 levels) in reload'
    E, [2025-11-01T11:56:05.989645 #67] ERROR -- : reaped #<Process::Status: pid 6534 SIGKILL (signal 9)> worker=unknown
    I, [2025-11-01T11:56:41.468169 #7038]  INFO -- : Loading Sidekiq in process id 7038
    W, [2025-11-01T11:57:20.944092 #67]  WARN -- : Process would not terminate cleanly, force quitting. pid: 7038 Demon::Sidekiq
    /var/www/discourse/lib/demon/base.rb:94:in `restart'
    /var/www/discourse/lib/demon/sidekiq.rb:40:in `block in heartbeat_check'
    /var/www/discourse/lib/demon/sidekiq.rb:31:in `each'
    /var/www/discourse/lib/demon/sidekiq.rb:31:in `heartbeat_check'
    
  3. Die “Sidekiq-Ansicht” scheint keine Jobs zu verarbeiten.

  4. Die Benutzeroberfläche zeigt einige Warnungen an, dass Sidekiq nicht richtig läuft: Eine Überprüfung auf Updates wurde nicht durchgeführt. Stellen Sie sicher, dass Sidekiq läuft.

Hier ist, was ich versucht habe:

  • Neuaufbau (kein Fehler)

  • Leeren der Redis-Warteschlange (funktioniert, das Sidekiq-Dashboard geht zurück auf Null, aber die Aufgaben werden immer noch nicht verarbeitet)

  • Überprüfung der Redis-Version im Datencontainer (Redis-Version: 7.0.15)

  • Überprüfung, ob Sidekiq pausiert ist (ist es nicht)

  • Durchsicht der Protokolle in shared/web-only/log, aber ich konnte nichts Relevantes finden, obwohl zusätzliche Hinweise willkommen sind!

  • Versuch, Sidekiq-Protokolle zu aktivieren, indem DISCOURSE_LOG_SIDEKIQ: 1 in web_only.yml gesetzt und dann ./launcher stop web_only && ./launcher destroy web_only && ./launcher start web_only ausgeführt wurde. Die Protokolle zeigen nur Erfolgsmeldungen wie:

    {"hostname":"forum-web-only","pid":12961,"database":"chatonnade","job_id":null,"job_name":"Jobs::DiscourseAutomation::StalledWikiTracker","job_type":"scheduled","opts":"{}","status":"success","live_slots_start":1298445,"duration":0.04405494895763695,"sql_duration":0.03392060892656446,"sql_calls":1,"redis_duration":0,"redis_calls":0,"net_duration":0,"net_calls":0,"live_slots_finish":1299663,"live_slots":1218,"@timestamp":"2025-11-01T12:17:32.561+00:00"}
    

Mir gehen die Ideen aus, was ich tun könnte, um das Problem einzugrenzen. Wo kann ich nach einer aussagekräftigen Fehlermeldung suchen?

Vielen Dank!