Prueba de latido de Sidekiq falló, reiniciando

El mismo problema aquí con la última actualización. No hubo cambios más que la propia actualización mediante una reconstrucción; el panel de administración indica que Sidekiq no se está ejecutando. Tengo PostgreSQL y Redis en un contenedor y la aplicación en otro; también los he reiniciado todos. Las colas tienen varias cientos de elementos, pero nada está siendo procesado.

EDIT1: Limpiar todas las colas no solucionó ni ayudó en nada; se están rellenando de nuevo y siguen sin procesarse.

EDIT2: He reconstruido el foro con toda la interrupción de servicio que eso conlleva, y sigo viendo este mensaje:

Y las colas no se procesan en /sidekiq. Todo esto funcionaba sin problemas antes de actualizar de beta7 a 2.4.0.beta9.

EDIT3: Más de 50 GB de espacio libre. Ejecutar manualmente una copia de seguridad (casi 300 MB) funciona correctamente; indica que pausa y reanuda Sidekiq y no reporta errores en el registro, pero Sidekiq sigue sin parecer estar en ejecución.

EDIT4: El único registro relevante en /logs es el de Sidekiq heartbeat test failed, restarting, que se repite continuamente.

EDIT5: Redis parece estar activo y funcionando bien; al menos su archivo de registro está ocupado diciendo que no tiene mucho que hacer… Y para mayor claridad:

[3] pry(main)> Sidekiq.paused?
=> false

EDIT6: Limpié las colas hace un rato; ahora hay 10 tareas en cola de nuevo, pero no se están procesando.

EDIT7: Descubrí que bundle exec sidekiq es la forma habitual de iniciar Sidekiq en un proyecto normal, así que probemos ejecutarlo para ver qué ocurre:

root@vps198273-forum:/var/www/discourse# bundle exec sidekiq
2020-01-06T05:10:18.814Z pid=31242 tid=gn383wxbu INFO: Booting Sidekiq 6.0.4 with redis options {:host=>"forum-data", :port=>6379, :namespace=>"sidekiq", :id=>"Sidekiq-server-PID-31242", :url=>nil}
You are connecting to Redis v3.0.6, Sidekiq requires Redis v4.0.0 or greater
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/lib/sidekiq/cli.rb:62:in `run'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/bin/sidekiq:12:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/sidekiq-6.0.4/bin/sidekiq:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/sidekiq:23:in `<top (required)>'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/cli/exec.rb:63:in `load'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/cli/exec.rb:63:in `kernel_load'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/cli/exec.rb:28:in `run'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/cli.rb:476:in `exec'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/cli.rb:30:in `dispatch'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/cli.rb:24:in `start'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/exe/bundle:46:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.1/exe/bundle:34:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'

You are connecting to Redis v3.0.6, Sidekiq requires Redis v4.0.0 or greater

Bueno, esto parece interesante. Probemos reconstruir el contenedor de datos y rezar para no tocar los datos, lol…

EDIT8: Parece que está ejecutando Redis 5.0.5 (¿por qué no se usa pubsub de PostgreSQL para esto?), que definitivamente es 4.0.0 o superior… y ha terminado de reconstruirse. Probando el foro, sus datos siguen ahí y ¡tenemos un pico!


¡Parece arreglado! Quizás este post sea útil para alguien. Ojalá el foro me hubiera mostrado el error que Sidekiq estaba dando sobre una versión obsoleta de Redis, pero supongo que esos registros se van al vacío en algún lugar, ya que no los vi en ningún lado. ^.^