大家好,
如果我们尝试将帖子从一个线程移动到另一个线程,有时会收到“500 内部服务器错误”。
是否有教程可以指导我们排查此类问题?我在哪里可以找到日志文件以获取有关该问题的详细信息?
感谢每一位回复 ![]()
问候,Ronny
大家好,
如果我们尝试将帖子从一个线程移动到另一个线程,有时会收到“500 内部服务器错误”。
是否有教程可以指导我们排查此类问题?我在哪里可以找到日志文件以获取有关该问题的详细信息?
感谢每一位回复 ![]()
问候,Ronny
我们在移动帖子时也遇到了 500 错误。我通过将一个帖子移动到另一个主题,然后尝试将其移回原始主题成功触发了该问题。
以下是详细信息:
SyntaxError: Unexpected token < in JSON at position 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 名用户,我认为这种方法并不适用于用户更多的论坛 ![]()
此致,
Ronny
谢谢 Ronny,天哪!我想我的 1 万名用户对于失去阅读历史不会太高兴。过去几周,我也收到许多用户的反馈,称他们的帖子没有被正确标记为已读。我想这也解释了那个问题。
Sam 或其他人,有没有办法在不删除表的情况下清理这个问题?![]()
此已修复的漏洞可能解释了未读状态的问题:
我刚刚在我的本地环境中尝试复现这个错误。我成功地将一个帖子移动到了一个新主题,然后又移了回来。
我无法确定此处提到的提交是否导致了该错误。该提交并未修改 post_timings 表,且它属于我们正在开发的一项实验性功能(默认禁用)。为了保险起见,我尝试在启用该功能的情况下移动帖子,结果也正常。
如果有人能分享一些日志,那将非常有帮助。
我查看一下是否有之前关于数据表错误的旧日志。不过,清空表内容确实解决了问题(尽管有我提到的副作用)。
抱歉,我搜索过了,但再也找不到了…… ![]()
顺便提一下,我在尝试将某篇帖子从一个主题移动到另一个主题时,也遇到了这个 500 错误。我并没有进行任何复杂操作,所以如果 Discourse 的同事需要日志,请告诉我需要查看哪些内容,我会尽力提供。
谢谢,我会在下一个测试版发布时尝试。