Перемещение темы модератором вызывает ошибку 500, как устранить проблему

Всем привет,

когда мы пытаемся переместить сообщение из одной темы в другую, иногда возникает ошибка «500 Internal Server Error».

Есть ли какое-нибудь руководство по устранению подобных проблем? Где можно найти файлы логов, чтобы получить подробную информацию об ошибке?

Спасибо за каждый ответ :slight_smile:

С уважением, Ронни

Мы также наблюдаем ошибки 500 при перемещении сообщений. Мне удалось воспроизвести проблему, переместив сообщение в другую тему, а затем попытавшись вернуть его в исходную тему.

Вот детали:

SyntaxError: Unexpected token < в JSON на позиции 0
    at Function.parse [as parseJSON] (<anonymous>)
    at t (_application-1aa5dba826bc3ed623e07f37fc542db9746ecf4a5fcf6b519e5921036bface8d.js:12468)
    at _application-1aa5dba826bc3ed623e07f37fc542db9746ecf4a5fcf6b519e5921036bface8d.js:34707
    at f (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:70136)
    at T (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:70309)
    at E (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:70295)
    at y (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:70231)
    at t.invoke (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:64637)
    at e.t.flush (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:64527)
    at e.t.flush (_ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:64731)

Спасибо за ваш ответ!

Тем временем я обнаружил причину проблемы в таблице post_timings в базе данных. В этой таблице хранится информация о том, какие посты пользователи уже прочитали в темах. При неизвестных мне обстоятельствах сервер может пытаться записать в таблицу записи, которые уже существуют.

Я искал в логах и нашёл упоминание этой таблицы базы данных. К сожалению, я больше не помню, какие именно логи я просматривал… :confused:

Моим решением было просто очистить содержимое таблицы. Все пользователи потеряли прогресс чтения тем, и некоторым пришлось написать новый пост в существующих темах, чтобы перезаписать кэшированные браузером данные. У меня очень маленький форум, всего около 20 пользователей, поэтому я не думаю, что это решение подойдёт для форума с большим количеством пользователей :wink:

С уважением, Ронни

Спасибо, Ронни, и ох! Не думаю, что мои 10 тысяч пользователей будут в восторге от потери истории чтения. Также за последние недели многие пользователи сообщали, что их посты не помечаются как прочитанные корректно. Видимо, это объясняет и эту проблему.

Есть ли способ исправить это без удаления таблицы, @sam или другие? :slight_smile:

Эта исправленная ошибка, вероятно, объясняет статусы «непрочитано»:

Я только что попытался воспроизвести эту ошибку в локальной среде. Мне удалось переместить пост в новую тему, а затем вернуть его обратно.

Я не могу сказать, является ли упомянутый здесь коммит причиной ошибки. Он не изменяет таблицу post_timings и является частью экспериментальной функции, над которой мы работаем (по умолчанию отключена). На всякий случай я попробовал перемещать посты с включённой функцией, но всё также работало корректно.

Если кто-то сможет поделиться логами, это было бы очень полезно.

Я проверю, есть ли у меня старые логи об ошибке с таблицей данных. Но удаление содержимого таблицы точно решило проблему (с теми побочными эффектами, о которых я упоминал).

Извините, я искал это, но больше не могу найти… :confused:

К слову, у меня тоже возникает эта ошибка 500 при попытке переместить определённый пост из одной темы в другую. Я не пробовал ничего сложного, поэтому, если кому-то из команды Discourse нужны логи, дайте знать, что именно искать, и я попробую это сделать.

Спасибо, попробую, когда выйдет следующая бета-версия.