Error de reconstrucción

I, [2025-07-23T07:29:09.853446 #1]  INFO -- : 
> cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
TypeError: wrong argument type Integer (expected String) (TypeError)

        _write(command)
               ^^^^^^^
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/hiredis-client-0.25.1/lib/redis_client/hiredis_connection.rb:121:in `_write'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/hiredis-client-0.25.1/lib/redis_client/hiredis_connection.rb:121:in `block in write_multi'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/hiredis-client-0.25.1/lib/redis_client/hiredis_connection.rb:120:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/hiredis-client-0.25.1/lib/redis_client/hiredis_connection.rb:120:in `write_multi'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client/connection_mixin.rb:48:in `call_pipelined'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client.rb:798:in `block in connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client/middlewares.rb:16:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client.rb:797:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client.rb:759:in `raw_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client.rb:719:in `ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.1/lib/redis_client.rb:314:in `call_v'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/client.rb:90:in `call_v'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:152:in `block in send_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:151:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:151:in `send_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/commands/server.rb:90:in `info'
/var/www/discourse/lib/discourse_redis.rb:38:in `public_send'
/var/www/discourse/lib/discourse_redis.rb:38:in `block in method_missing'
/var/www/discourse/lib/discourse_redis.rb:29:in `ignore_readonly'
/var/www/discourse/lib/discourse_redis.rb:38:in `method_missing'
/var/www/discourse/config/initializers/001-redis.rb:9:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/engine.rb:693:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/engine.rb:693:in `block in load_config_initializer'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2/lib/active_support/notifications.rb:212:in `instrument'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/engine.rb:692:in `load_config_initializer'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/engine.rb:646:in `block (2 levels) in <class:Engine>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/engine.rb:645:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/engine.rb:645:in `block in <class:Engine>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/initializable.rb:32:in `instance_exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/initializable.rb:32:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/initializable.rb:61:in `block in run_initializers'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/initializable.rb:50:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/initializable.rb:50:in `tsort_each_child'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/initializable.rb:60:in `run_initializers'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/application.rb:440:in `initialize!'
/var/www/discourse/config/environment.rb:7:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.7.3/lib/zeitwerk/core_ext/kernel.rb:34:in `require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/application.rb:416:in `require_environment!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/application.rb:567:in `block in run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.0/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)
I, [2025-07-23T07:29:12.543604 #1]  INFO -- : gem install aws-sdk-translate -v 1.35.0 -i /var/www/discourse/plugins/discourse-translator/gems/3.3.8 --no-document --ignore-dependencies --no-user-install
Successfully installed aws-sdk-translate-1.35.0
1 gem installed


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 883 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/exec_command.rb:131:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1


Posibles causas: PERF: switch redis driver to hiredis by SamSaffron · Pull Request #33773 · discourse/discourse · GitHub

1 me gusta

Gracias por informar, por ahora revertiré, pero ¿podrías contarnos un poco más sobre cómo está configurado Redis en tu entorno? ¿Es una configuración de múltiples contenedores?

Sí, configuración multi-contenedor. Redis es un contenedor aparte.

¿en qué versión está? Sospecho que es una versión antigua de redis que no admite hiredis.

redis:7.4.3

1 me gusta

¿Hay alguna posibilidad de que puedas ayudar e informar esto a GitHub · Where software is built?

Idealmente, una reproducción sería algo que:

  1. Ejecute el contenedor de Docker para tu redis. (y compártelo con byroot para facilitar la depuración)
  2. Ejecute algo como esto contra tu configuración:
require 'hiredis-client'
require 'redis-client'
require 'redis'
Redis.new(... <- tu IP, etc.).info

.info debería explotar, que es lo que estábamos ejecutando.

Recomiendo evitar añadir env porque terminarás olvidándote de él. En su lugar, simplemente reconstruye, esto ha sido revertido por ahora.