502 Bad Gateway nach Online-Neuerstellung von Tests-bestandenem Production gerade eben

Neustart des Servers, Neustart des Containers, Neukompilierung der Konsole helfen nicht.

Der Container ist aktiv, da ich ./launcher enter app ausführen kann.

Ich habe eine Reihe dieser Meldungen in den Protokollen, Ideen, wie ich ein Redis-Fehlverhalten untersuchen kann?

Error connecting to Redis on localhost:6379 (Errno::EADDRNOTAVAIL) subscribe failed, reconnecting in 1 second. Call stack /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:398:in `rescue in establish_connection'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:379:in `establish_connection'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:115:in `block in connect'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:344:in `with_reconnect'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:114:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:409:in `ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:269:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:356:in `logging'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:268:in `process'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/redis-4.8.1/lib/redis/client.rb:161:in `call'first?

Ich bin mir nicht sicher, ob das eine gute Idee ist, aber ich habe versucht, es manuell zu starten:

/var/www/discourse# redis-server
3770:C 14 Dez 2023 17:20:17.171 # oO0OoO0OoO0Oo Redis startet oO0OoO0OoO0Oo
3770:C 14 Dez 2023 17:20:17.171 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=3770, gerade gestartet
3770:C 14 Dez 2023 17:20:17.171 # Warnung: keine Konfigurationsdatei angegeben, Standardkonfiguration wird verwendet. Um eine Konfigurationsdatei anzugeben, verwenden Sie redis-server /pfad/zu/redis.conf
3770:M 14 Dez 2023 17:20:17.173 * Monotonische Uhr: POSIX clock_gettime
3770:M 14 Dez 2023 17:20:17.173 # Warnung: Konnte keine TCP-Server-Listening-Socket erstellen *:6379: bind: Adresse bereits in Verwendung
3770:M 14 Dez 2023 17:20:17.173 # Fehler beim Lauschen auf Port 6379 (TCP), Abbruch.
1 „Gefällt mir“

Läuft Redis tatsächlich im Container?

Denkt sv, dass es das tut?

root@michael-discourse-docker-app:/# sv status redis
run: redis: (pid 548) 9843135s; run: log: (pid 547) 9843135s

Zeigt sich etwas in /var/log/redis/current?

Können Sie sv down redis (falls es läuft) und sv up redis ausführen?

Gibt es danach relevante Protokolle?

1 „Gefällt mir“
/var/www/discourse/log# sv status redis
run: redis: (pid 565) 1430s; run: log: (pid 560) 1430s
/var/www/discourse/log# sv down redis
/var/www/discourse/log# sv up redis
/var/www/discourse/log# tail /var/log/redis/current
4766:M 14 Dec 2023 17:26:20.195 * monotonic clock: POSIX clock_gettime
4766:M 14 Dec 2023 17:26:20.195 * Running mode=standalone, port=6379.
4766:M 14 Dec 2023 17:26:20.195 # Server initialized
4766:M 14 Dec 2023 17:26:20.195 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
4766:M 14 Dec 2023 17:26:20.196 * Loading RDB produced by version 7.0.7
4766:M 14 Dec 2023 17:26:20.196 * RDB age 3 seconds
4766:M 14 Dec 2023 17:26:20.196 * RDB memory usage when created 24.56 Mb
4766:M 14 Dec 2023 17:26:20.317 * Done loading RDB, keys loaded: 21165, keys expired: 3.
4766:M 14 Dec 2023 17:26:20.317 * DB loaded from disk: 0.121 seconds
4766:M 14 Dec 2023 17:26:20.317 * Ready to accept connections

Problem gefunden! Ein Plugin! (Meins!!)

1 „Gefällt mir“

Danke Michael, es scheint, dass es ein Verstoß gegen die Namenskonvention von Zeitwerk war! (wird von Rubocop nicht erkannt, funktioniert aber in der Entwicklung).

Aber diese Befehle sind sehr, sehr nützlich für zukünftige Referenzen!

1 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.