El error de página Oops de Git Hang y las cuentas de usuario Admin/Mod

Sí, creo que ese es el problema. La LLM opina que el código no maneja bien una lista de entradas, de ahí el error 500.

Vale, ¿parece que estamos en el terreno de Contribute > Bug?

Creo que es un error y que la solución será sencilla, pero no entiendo bien las nuevas categorías. (Y personalmente no presentaría código si siento que no lo entiendo por completo.)

También está la cuestión de si el estado de tu base de datos se debe a otro error que también necesita ser corregido.

Dado que en este tema solo han participado tres personas, podría ser útil crear un nuevo tema para reportar el error. Si un moderador desea fusionar o reclasificarlo, siempre puede hacerlo.

Ok, en realidad no había visto el tema Contribute > Bug, ni recuerdo haber publicado en él, y tampoco tendría el nivel de experiencia para determinar si se trata de un error o no.

Además, sí, probablemente tengas razón: podrían existir algunos problemas históricos en la base de datos que hayan provocado este punto tan frágil.

Aunque hay una necesidad de volver a tener acceso a la cuenta de administrador cuanto antes, supongo que eso sigue dependiendo de los dioses, pero al menos quizás hayamos llegado a la raíz del problema, así que ¡esperemos que funcione!

Gracias por tu ayuda. :+1:

Además, me pregunto si esto daría cierto respaldo a la idea de revocar el estado de administrador de la cuenta de usuario y cambiarla a un nivel de cuenta de moderador, lo cual podría evitar este problema al iniciar sesión.

Probablemente lo probaré, después de hacer una copia de seguridad.

Mi preocupación es la pérdida de datos o romper algo de lo que no tendría ni idea de cómo verificar si parece bien y no aparece ningún error. :thinking:

De nada. Ha sido interesante.

Probablemente haya algún pequeño truco que puedas hacer en SQL para eliminar esa entrada duplicada, pero personalmente no lo haría a la ligera.

También es posible, según el LLM, usar la consola de Rails para actualizar la función de Ruby de diez líneas y hacerla más robusta. Eso, al menos, debería ser algo seguro, ya que un reinicio recargaría el código Ruby real desde el disco.

Quiero pegar esto para conservarlo y poder cerrar una pestaña: código sin probar del LLM, presentado aquí como un parche de mono para aplicar en la consola de Rails a un sistema en ejecución, pero que también contiene una corrección sugerida por el LLM para esta fragilidad que causa el error:

# Re-abrir CurrentUserSerializer para sobrescribir el método roto
class CurrentUserSerializer < ApplicationSerializer
  def has_new_upcoming_changes
    last_visited = object.custom_fields["last_visited_upcoming_changes_at"]
    
    # Extraer la cadena si está en caché como un arreglo por el preloader
    last_visited = last_visited.first if last_visited.is_a?(Array)
    
    return false if last_visited.blank? && object.created_at < Discourse.site_creation_date + 1.hour
    cutoff = last_visited.present? ? Time.zone.parse(last_visited.to_s) : object.created_at
    UpcomingChangeEvent.added.not_backfilled.where("created_at > ?", cutoff).exists?
  end
end

Revocación de administrador

Las acciones se aplican a la cuenta del administrador original que quedó bloqueado:

  1. Revocar administrador + Conceder moderador = fallo de inicio de sesión/mismo error.

  2. Revocar moderador

  • Primer inicio de sesión (sin error), pero se queda atascado en la rueda giratoria de autenticación de dos factores/inicio de sesión.
  • Lo dejé durante unos 10 minutos (el servidor mostraba un aumento de carga al iniciar sesión), pero no pasó nada.
  • Sin embargo, la pestaña de usuarios “activos” muestra que el usuario inició sesión hace Xm, hmm :thinking:
  • Intento un segundo inicio de sesión en otra ventana (privada) y ¡funciona!

Bueno, esto se presenta como una solución temporal para un usuario administrador que necesite leer mensajes/chat, etc., pero no resuelve el problema de fondo.

A continuación, usando otra cuenta de administrador, se “Concede administrador” a la cuenta del antiguo usuario administrador que ya está conectado.

  • Mientras está conectado, llega un mensaje de actualización de administrador que indica éxito.
  • Actualizo la página y ¡el error aparece una vez más!

No puedo publicar en el tema “Git hang” porque está cerrado desde el 28 de septiembre, pero al notar algunos problemas de lentitud hace unos minutos pensé: ah, tal vez git se haya caído de nuevo y esté causando problemas, y, como no, downdetector.com estaba mostrando un gran pico de caídas para GitHub más o menos en ese momento. :thinking: