Ich habe kürzlich meine Discourse-Docker-Instanz auf einem Ubuntu EC2-Server aktualisiert. Für das Upgrade habe ich launcher rebuild verwendet. Zuvor war Version 2.4.0 installiert, ich habe auf 2.6.0.beta1 (und anschließend noch einmal auf 2.6.0.beta2) aktualisiert. Ich verwende anstelle von Redis ElasticCache, was vor dem Upgrade problemlos funktioniert hat. Unmittelbar nach dem Upgrade stellte ich fest, dass Sidekiq keine E-Mails mehr versendet. Ich habe die App neu gestartet und den Cache geleert, und es schien zunächst zu funktionieren, aber das war ein falscher Alarm.
Beobachtete Anzeichen einer Fehlfunktion
- Sidekiq plant und stellt Jobs in einer relativ konstanten Geschwindigkeit in die Warteschlange (wie im Sidekiq-Dashboard angezeigt), führt sie jedoch nicht aus.
- Die Admin-Seite meldet, dass Sidekiq nicht läuft.
- In den Logs erscheinen mehrere Einträge:
Sidekiq heartbeat test failed, restarting. - Selbstverständlich: E-Mails werden nicht an Benutzer versendet.
Maßnahmen, die ich bereits ergriffen habe (nach dem Lesen von Beiträgen hier und auf Stack Overflow)
- Erfolgreicher Versand eines Test-E-Mails mit
discourse-doctor, um zu überprüfen, dass dieser Teil des Ablaufs funktioniert. - Überprüfung im Sidekiq-Dashboard, dass die Fußzeile die korrekte ElasticCache-Instanz anzeigt .
- Überprüfung, dass die Docker-Logs keine Fehler anzeigen (
ok: run: redis: (pid XX) 0s). - Cache geleert und Discourse neu gestartet (
./launcher restart app). - App gestoppt, Cache geleert, App neu gestartet.
- App erneut neu aufgebaut.
Schritte, die ich noch nicht versucht habe
- Eine neue ElasticCache-Instanz erstellen.
- Diese Installation stilllegen und eine saubere Installation erstellen.
Hat jemand Ähnliches erlebt und hat Vorschläge?
Gibt es Logs, die ich übersehen habe?
Gibt es eine Möglichkeit, Sidekiq dazu zu bringen, seine Jobs zu verarbeiten?