Muchos problemas: El personal conectado no puede acceder a los temas, la actualización manual falla, las tarjetas de usuario no se abren, el inicio de sesión predeterminado no funciona

Hola. He publicado un problema similar antes, el cual no se resolvió completamente. Actualmente hay varios problemas graves ocurriendo en nuestros foros.

  1. Las actualizaciones desde la línea de comandos fallan.
    1. He intentado eliminar todas las extensiones, pero aún así no funcionó.

    2. He creado una nueva instancia, copiado la copia de seguridad de la anterior y la restauré mediante la línea de comandos. Terminó con algunos errores:

      ERROR:  could not create unique index "index_incoming_referers_on_path_and_incoming_domain_id"
      DETAIL:  Key (path, incoming_domain_id)=(/m/search, 18) is duplicated.
      EXCEPTION: psql failed: DETAIL:  Key (path, incoming_domain_id)=(/m/search, 18) is duplicated.
      /var/www/discourse/lib/backup_restore/database_restorer.rb:87:in `restore_dump'
      /var/www/discourse/lib/backup_restore/database_restorer.rb:26:in `restore'
      /var/www/discourse/lib/backup_restore/restorer.rb:51:in `run'
      script/discourse:145:in `restore'
      /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
      /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
      /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
      /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/base.rb:485:in `start'
      script/discourse:286:in `<top (required)>'
      /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/cli/exec.rb:63:in `load'
      /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/cli/exec.rb:63:in `kernel_load'
      /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/cli/exec.rb:28:in `run'
      /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/cli.rb:494:in `exec'
      /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
      /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
      /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
      /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/cli.rb:30:in `dispatch'
      /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
      /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/cli.rb:24:in `start'
      /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/exe/bundle:49:in `block in <top (required)>'
      /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/lib/bundler/friendly_errors.rb:130:in `with_friendly_errors'
      /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.7/exe/bundle:37:in `<top (required)>'
      /usr/local/bin/bundle:23:in `load'
      /usr/local/bin/bundle:23:in `<main>'
      Trying to rollback...
      Rolling back...
      Cleaning stuff up...
      Dropping functions from the discourse_functions schema...
      Removing tmp '/var/www/discourse/tmp/restores/default/2021-08-30-124350' directory...
      Unpausing sidekiq...
      Marking restore as finished...
      Notifying 'system' of the end of the restore...
      Finished!
      [FAILED]
      Restore done.
      
    3. Luego ejecuté ./launcher rebuild app para ver si funcionaba, pero obtuve mensajes de error similares:

      rake aborted!
      StandardError: An error has occurred, this and all later migrations canceled:
      
      ERROR:  unsupported Unicode escape sequence
      DETAIL:  \u0000 cannot be converted to text.
      

      y

      FAILED
      --------------------
      Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with 
      return #<Process::Status: pid 4162 exit 1>
      Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
      exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
      c618c071d6a0240d55ce704cedd63d2ee4cf1df589810d2130049a78b69f327e
      
    4. También ejecuté discourse-doctor sin éxito.

  2. No podemos iniciar sesión normalmente con un nombre de usuario y contraseña; esto genera un error.
    1. Solo funcionan otros métodos de inicio de sesión (GitHub, Google, etc.).
  3. Las tarjetas de usuario no se muestran para los usuarios. Si haces clic en el nombre de un usuario, la tarjeta intenta aparecer por un instante pero no lo logra.
    1. Cuando visitas la página de perfil del usuario (por ejemplo, abriéndola en una nueva pestaña), aparece un error: “Oops, esta página no existe”.
    2. Cuando un usuario intenta ver sus preferencias, mensajes, etc., también se le muestra una página de error “Oops”.
    3. Podemos ver otras configuraciones del usuario a través de la interfaz de administración, pero no podemos realizar cambios en configuraciones como la interfaz o el avatar del usuario.
  4. Los administradores no pueden ver los temas ni la página principal.
    1. El sitio se puede ver normalmente cuando no hay sesión iniciada.
    2. Otros usuarios pueden iniciar sesión e interactuar con el foro (crear temas, respuestas, etc.).
    3. Si iniciamos sesión como administrador, nos encontramos con un mensaje de error:

      Oops

      El software que impulsa este foro de discusión encontró un problema inesperado. Lamentamos las molestias.

      Se registró información detallada sobre el error y se generó una notificación automática. Lo revisaremos.

      No es necesaria ninguna acción adicional. Sin embargo, si el error persiste, puedes proporcionar detalles adicionales, incluidos los pasos para reproducir el error, publicando un tema de discusión en la categoría de retroalimentación del sitio.

Agradecemos cualquier ayuda. Si tienes alguna idea sobre cómo solucionar esto o una forma de crear una nueva instancia con una copia de seguridad funcional, por favor háznoslo saber.

Consulta esto para un problema similar (aunque diferente): Duplicate data explorer key blocking rebuild

Verifica problemas de integridad de datos asociados en tu base de datos actual, corrígelos y luego crea una copia de seguridad.

@merefield, no tengo un conocimiento exhaustivo, así que lo verifiqué usando el Explorador de Datos y hay una columna incoming_domain_id en la tabla incoming_referers de tipo integer que actúa como clave foránea hacia incoming_domains. ¿Debería trabajar en esto? De ser así, ¿cómo lo verifico?

Esto se ve tan desordenado que, si no tienes confianza y los datos son críticos, te recomendaría que un SA experimentado te ayude a recuperar todo Marketplace

¿Descubriste los problemas?