“제목 최대 단어 길이” 값이 크면 서버 오류 발생

  • title max word length을 2000000000으로 설정
  • 주제 생성을 시도
  • 500 에러 발생
  • 주제를 생성할 수 없음
RegexpError (too big number for repeat range: /\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'

지난주에 도입되었습니다. 최대값은 100000입니다.

2개의 좋아요

현재 max topic title length(최대 주제 제목 길이)이 255로 제한되어 있는 것으로 보이므로, title max word length(제목 최대 단어 길이)에도 해당 제한을 적용해야 하지 않을까요?

제목의 최대 단어 길이 제한을 0으로 설정하여 제거할 수 있을 것이라 생각했는데(매우 높은 값을 사용하는 대신), 실제로는 별도의 버그가 드러났습니다. 현재는 0을 허용하지만, 이로 인해 체크가 비활성화되는 것이 아니라 오히려 유효한 제목이 없게 되어 주제를 생성할 수 없게 됩니다:

물론 이 문제를 드러낸 커밋을 되돌릴 수는 있지만, 어쨌든 title max word length(제목 최대 단어 길이)에 대한 검증(예: [1, 255])이 필요한 것으로 보입니다.

2개의 좋아요

title_max_word_length을 [1, 255]로 제한하는 방식으로 시도해 보았습니다.

1개의 좋아요

사람들이 이 값을 0으로 설정하여 체크를 비활성화하려는 시도를 했을 수 있으므로, 1로 마이그레이션하는 대신 0을 255로 마이그레이션하는 것이 더 나을 것 같은데, 어떻게 생각하시나요? :thinking:

저는 반대하지 않습니다… 다만, 그 시점에 주제를 생성할 수 없기 때문에 이 설정이 실수로 0으로 설정된 포럼이 실제로 존재할지 의문입니다. 따라서 이미 되돌려졌을 가능성이 높습니다.

2개의 좋아요

맞아요! 제 댓글은 무시해 주세요!