Мы также наблюдаем ошибки 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 в базе данных. В этой таблице хранится информация о том, какие посты пользователи уже прочитали в темах. При неизвестных мне обстоятельствах сервер может пытаться записать в таблицу записи, которые уже существуют.
Я искал в логах и нашёл упоминание этой таблицы базы данных. К сожалению, я больше не помню, какие именно логи я просматривал…
Моим решением было просто очистить содержимое таблицы. Все пользователи потеряли прогресс чтения тем, и некоторым пришлось написать новый пост в существующих темах, чтобы перезаписать кэшированные браузером данные. У меня очень маленький форум, всего около 20 пользователей, поэтому я не думаю, что это решение подойдёт для форума с большим количеством пользователей
Спасибо, Ронни, и ох! Не думаю, что мои 10 тысяч пользователей будут в восторге от потери истории чтения. Также за последние недели многие пользователи сообщали, что их посты не помечаются как прочитанные корректно. Видимо, это объясняет и эту проблему.
Есть ли способ исправить это без удаления таблицы, @sam или другие?
Я только что попытался воспроизвести эту ошибку в локальной среде. Мне удалось переместить пост в новую тему, а затем вернуть его обратно.
Я не могу сказать, является ли упомянутый здесь коммит причиной ошибки. Он не изменяет таблицу post_timings и является частью экспериментальной функции, над которой мы работаем (по умолчанию отключена). На всякий случай я попробовал перемещать посты с включённой функцией, но всё также работало корректно.
Если кто-то сможет поделиться логами, это было бы очень полезно.
Я проверю, есть ли у меня старые логи об ошибке с таблицей данных. Но удаление содержимого таблицы точно решило проблему (с теми побочными эффектами, о которых я упоминал).
К слову, у меня тоже возникает эта ошибка 500 при попытке переместить определённый пост из одной темы в другую. Я не пробовал ничего сложного, поэтому, если кому-то из команды Discourse нужны логи, дайте знать, что именно искать, и я попробую это сделать.