Respuestas en el hilo que se muestran desordenadas

Después de actualizar recientemente a la versión 2.6.0.beta3, algunas respuestas en varios hilos aparecen en el orden incorrecto. Las marcas de tiempo se muestran correctamente, pero las respuestas afectadas siempre aparecen al final del hilo.

He intentado actualizar nuevamente y ejecutar rake posts:reorder_posts en los temas afectados, pero esto no ha tenido ningún efecto. ¿Hay algo más que pueda hacer para que se reordenen correctamente? ¿O se trata de un error en Discourse? Los mensajes se muestran igual para todos los usuarios.

Un ejemplo de uno de los temas, esto es el final del hilo:

1 me gusta

¿Por casualidad moviste los últimos 2 mensajes a ese tema? En ese caso, es el comportamiento esperado.

2 Me gusta

No, siempre estuvieron en ese tema y, antes de la actualización, las respuestas estaban en el orden esperado.

Esto no ocurre solo en un tema, sino en aparentemente todos. Hay una o dos respuestas que aparecen al final y no deberían estar ahí.

2 Me gusta

Yo tuve el mismo problema.

No, no muevo publicaciones al tema, pero las respuestas en el hilo aparecen desordenadas.

Al ejecutar la consulta desde posts:reorder_posts, se observa que el sort_order de varios posts es extraño y parece que la tarea rake debería actualizarlos, pero no lo hace.


Al ejecutar:

SELECT
id,
post_number,
sort_order,
ROW_NUMBER() OVER (
    PARTITION BY
    topic_id
    ORDER BY
    created_at,
    post_number
) AS new_post_number
FROM
posts

Al intentar recrear manualmente la tarea de rake, ejecuté:

WITH ordered_posts AS (
  SELECT
    id,
    ROW_NUMBER() OVER (
      PARTITION BY
        topic_id
      ORDER BY
        created_at,
        post_number
    ) AS new_post_number
  FROM
    posts
  /*where*/
)
SELECT
  p.post_number,
  p.sort_order,
  o.new_post_number
FROM
  posts AS p, ordered_posts AS o
WHERE
  p.id = o.id

lo que resultó en:

Esto muestra por qué la tarea de rake no hace nada: piensa que no hay nada que hacer… La tarea de rake tiene una condición where adicional que compara post_number con new_post_number, y no con sort_order.

Ahora he ejecutado manualmente en la base de datos:

WITH ordered_posts AS (
  SELECT
    id,
    ROW_NUMBER() OVER (
      PARTITION BY
        topic_id
      ORDER BY
        created_at,
        post_number
    ) AS new_post_number
  FROM
    posts
  /*where*/
)
UPDATE
  posts AS p
SET
  sort_order = o.new_post_number
FROM
  ordered_posts AS o
WHERE
  p.id = o.id AND
  p.sort_order <> o.new_post_number

y ahora los mensajes aparecen en el orden correcto.

2 Me gusta

Todavía no entiendo cómo llegaste a este estado; la única vez que manipulamos esto es cuando mueves publicaciones.

El creador de publicaciones simplemente establece sort_order en post_number

A largo plazo, ni siquiera estoy seguro de querer mantener la columna sort_order; parece ser una especie de arma de doble filo.

¿Hay algún plugin involucrado aquí?

Tampoco lo entiendo; no encontré ninguna razón al revisar el código. Parece que algo modifica el orden de clasificación, pero no logro ver qué.

Pensé que se habían desordenado cuando ejecuté una actualización, ya que los mensajes que aparecían fuera de orden eran generalmente mucho más antiguos y antes se mostraban en su lugar esperado. Cuando ejecuté el SQL anterior, todo parecía estar bien, pero la semana pasada, un par de publicaciones completamente nuevas también han aparecido fuera de orden. Creo que las publicaciones afectadas siempre son respuestas a otra publicación. Por ejemplo:

Tenemos instalados los siguientes complementos:

Supongo que question-answer modifica el orden de clasificación, pero eso solo debería afectar a los temas de preguntas, no a los generales.

Tengo el mismo problema. Anteriormente tuve errores 502 al mover publicaciones debido a temas largos, no estoy seguro si eso tiene algo que ver. También tengo instalado el complemento de preguntas y respuestas, pero aún veo publicaciones que aparecen al final de los temas después de desactivarlo.

Muy probablemente, esto no es realmente un complemento compatible u oficial; sort_order se utiliza de manera inconsistente en el núcleo de Discourse y estamos considerando eliminar esta columna.

Moviéndolo a Support, ya que lo veo como un error en un complemento no oficial.

@angus ¿Podrías echar un vistazo a este problema? Instalé este plugin y las respuestas comenzaron a aparecer desordenadas en todo el sitio. Acabo de desinstalar el plugin y las respuestas siguen apareciendo desordenadas.

He ejecutado una prueba en una sola publicación para ver si el siguiente comando corrige las respuestas desordenadas en una sola publicación (después de eliminar el plugin de preguntas y respuestas).

rake posts:reorder_posts[1896]

Desafortunadamente, las publicaciones siguen apareciendo desordenadas.

¡Hola, lamentamos que hayas experimentado este problema. Por favor, publica cualquier actualización al respecto en Question Answer Plugin. @mbcahyono y/o yo responderemos en breve. Esto no es una pregunta general de soporte de Discourse.

2 Me gusta