无法访问新用户个人资料

你好,

我想了解一下为什么无法访问今天早些时候创建的用户资料。查看日志时,我看到:

Started GET "/u/blender.bender/" for xx.xx.xx.xx at 2019-12-13 20:15:18 +0000
Processing by UsersController#show as HTML
  Parameters: {"username"=>"blender.bender"}
  Rendering exceptions/not_found.html.erb within layouts/no_ember
  Rendered exceptions/not_found.html.erb within layouts/no_ember (Duration: 0.3ms | Allocations: 120)
  Rendered layouts/_head.html.erb (Duration: 1.5ms | Allocations: 790)
  Rendered common/_discourse_stylesheet.html.erb (Duration: 0.9ms | Allocations: 470)
  Rendered application/_header.html.erb (Duration: 0.2ms | Allocations: 91)
  Rendering html template
  Rendered html template (Duration: 0.0ms | Allocations: 2)
Completed 404 Not Found in 155ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 58360)

我今天早些时候执行了重建操作,并在安全模式下进行了测试,结果相同。我还在数据探索器中查找了该用户,乍一看一切似乎正常。

以下是可以看到该用户的一个主题链接:Looking for someone to animate a drawbridge - Paid Work - Blender Artists Community

此问题还导致他的用户卡片无法显示。您知道为什么会发生这种情况,或者我应该接下来从哪里入手排查吗?

我们发现有新用户在首次加入后未出现在用户目录中。但在部分日常任务运行后,这些用户确实出现在了用户目录中,这让相关用户松了一口气。尽管如此,除了仪表板中的用户列表和报告日志外,管理员还应能在其他多个位置看到他们。总之,他们应该在几小时内完整显示,包括用户卡片。欢迎提出其他建议。:slightly_smiling_face:

我不认为问题出在这里——我可以正常访问其他新用户的个人主页。他们不在目录中并不是问题,我相信他们应该在 24 小时内出现?

看来这个账户的某些地方出了问题,但我不明白具体是什么……

好的,所以你有几个新用户,他们都出现了,除了这一个特定的?

这与用户目录无关——该用户可以发帖并使用网站,请查看我上面发布的链接。一旦点击他的头像,用户卡片不会显示。此外,如果我在管理员后台搜索他并尝试查看他的用户资料,会收到 404 错误页面。其他用户则不会出现这种情况。

我注意到这个用户的用户名中有一个点(blender.blender)。我在想这个特殊字符是否导致了问题。

再深入一点,我也在想同样的问题——搜索“%blender%bender”用户名时,我找到了以下列表。我怀疑“.”符号在内部没有被正确处理。该用户今天创建了两个账号:

再往前看,我还发现了一个(非常)古老的账号“blenderbender”。这个账号是从 vBulletin 导入的。

我总觉得我的实例中关于唯一用户名检查的机制可能有问题,但我想不出具体是什么问题 :-/

我通过停用旧账号成功解决了这个问题。之后,我重命名了该账号并解决了用户名重复的问题。

很高兴听到您已解决问题。

更新:不,我没做:捂脸:我修复了两个“blenderbender”账户重复的问题,但我仍然无法查看“blender.bender”的个人资料。今晚到此为止,该喝杯红酒放松一下了:wine_glass:

是的,我记得之前看到过类似的报告,非常相似的用户名导致了一些冲突……cc @eviltrout

这归根结底是用户表上的索引损坏。在手动修复了一批记录(这本身也是一次有趣的尝试 ;-))后,我得以重建索引。我会持续关注,确保此类问题不再发生。