Não é possível acessar o perfil de novo usuário

Olá,

Estou tentando entender por que não conseguimos acessar o perfil de um usuário criado hoje. Ao analisar os logs, vejo:

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)

Fiz uma reconstrução hoje e testei no modo seguro, com o mesmo resultado. Também procurei por ele no Data Explorer e, à primeira vista, tudo parece estar correto.

Aqui está um tópico onde é possível vê-lo: Looking for someone to animate a drawbridge - Paid Work - Blender Artists Community

Esse problema também impede que o cartão de usuário dele seja exibido. Alguma ideia do porquê isso acontece ou para onde devo olhar a seguir?

Tivemos casos de novos usuários que não apareciam no Diretório de Usuários logo após se juntarem. No entanto, assim que algumas rotinas diárias foram executadas, eles passaram a aparecer no Diretório de Usuários — o que foi um grande alívio para esses usuários. Ainda assim, deveria haver vários lugares onde um Administrador possa vê-los, além da lista de usuários no painel e dos registros de relatórios. No fim das contas, eles devem aparecer em algumas horas, com todos os detalhes do cartão de usuário. Outras sugestões são bem-vindas. :slightly_smiling_face:

Acho que não é isso — consigo acessar as páginas de perfil de outros novos usuários sem problemas. O fato de eles não estarem no diretório não é motivo de preocupação; acredito que devem aparecer dentro de 24 horas, certo?

Parece que algo nesta conta está com defeito, mas não consigo entender o que…

Certo, então você tem vários novos usuários e eles aparecem, exceto por esse em particular?

Isso não está relacionado ao diretório de usuários — este usuário pode postar e usar o site, veja o link que postei acima. Assim que você clica no avatar dele, o cartão do usuário não é exibido. Além disso, se eu tentar mostrar o perfil do usuário após pesquisá-lo no painel administrativo, recebo uma página de erro 404. Isso não ocorre com outros usuários.

Notei que este usuário tem um ponto no nome de usuário (blender.blender). Estou me perguntando se esse caractere especial está causando problemas.

Olhando um pouco mais de perto, eu me pergunto a mesma coisa — ao pesquisar por nomes de usuário ‘%blender%bender’, encontro a seguinte lista. De alguma forma, suspeito que o símbolo ‘.’ não está sendo tratado corretamente internamente. Este usuário criou essas duas contas hoje:

Olhando mais para trás, também vejo uma conta (muito) antiga ‘blenderbender’. Esta foi importada do vBulletin.

Não consigo tirar a impressão de que algo está errado na verificação de nomes de usuário exclusivos na minha instância, mas não consigo imaginar o quê :-/

Consegui resolver isso desativando a conta antiga. Depois disso, pude renomeá-la e resolver o problema do nome de usuário duplicado.

Fico feliz em saber que você resolveu.

Atualização - não, eu não fiz :facepalm: Eu corrigi o problema de duplicação das duas contas ‘blenderbender’, mas ainda não consigo visualizar o perfil ‘blender.bender’. Desisto por hoje, hora de tomar um :wine_glass:

É, lembro de ter visto relatos disso antes, com nomes de usuário muito semelhantes causando algum tipo de conflito… cc @eviltrout

Isso se resumiu a um índice corrompido na tabela de usuários. Após corrigir manualmente vários registros (o que foi, por si só, um exercício interessante ;-)), consegui recriar o índice. Vou ficar de olho nisso para garantir que não volte a acontecer.