Valor grande para "tamanho máximo de palavras do título" causa erro no servidor

  • Defina title max word length para 2000000000
  • Tente criar um tópico
  • Obtenha um erro 500
  • Tópicos não podem ser criados
RegexpError (número muito grande para o intervalo de repetição: /\\p{Alnum}{2000000001,}/)
lib/text_sentinel.rb:62:in `seems_unpretentious?'
lib/text_sentinel.rb:45:in `valid?'
lib/validators/quality_title_validator.rb:12:in `validate_each'
lib/topic_creator.rb:24:in `valid?'
lib/has_errors.rb:13:in `validate_child'
lib/post_creator.rb:133:in `valid?'
lib/post_creator.rb:187:in `create'
lib/new_post_manager.rb:318:in `perform_create_post'
lib/new_post_manager.rb:252:in `perform'
app/controllers/posts_controller.rb:215:in `create'

Introduzido semana passada. O máximo é 100000.

2 curtidas

Atualmente, max topic title length parece estar limitado a 255, então talvez title max word length também devesse ter esse limite?

Pensei que seria possível remover o limite máximo de palavras no título definindo-o como 0 (em vez de usar um valor muito alto), mas isso na verdade revelou um bug separado: atualmente aceita 0, mas isso não desabilita a verificação, em vez disso, torna-se impossível criar um tópico, pois nenhum título é válido:

É claro que é possível reverter o commit que expôs isso, mas independentemente disso, parece que title max word length precisa de alguma validação (por exemplo, [1, 255])?

2 curtidas

Eu tentei isso limitando title_max_word_length para [1, 255].

1 curtida

Como as pessoas podem ter definido isso como 0 na tentativa de desabilitar a verificação, pode ser melhor migrar o valor 0 para 255 em vez de 1, o que você acha? :thinking:

Eu não me oponho… embora duvide que exista algum fórum com isso inadvertidamente definido como 0, já que nenhum tópico pode ser criado nesse ponto, então provavelmente já teria sido revertido.

2 curtidas

É verdade! Ignore meu comentário, por favor!