Expressão regular de palavra assistida trava

Este é um bug duplo.

Primeiro, um erro em uma expressão regular causa um erro 500 no servidor quando qualquer postagem é feita.
Veja também este relatório de bug anterior Invalid regular expressions in 'Watched Words' makes no watched word work (cenário: pior).

Segundo, uma expressão regular anteriormente correta que escapa um traço, agora é vista como incorreta. Então, onde \\- costumava funcionar antes da versão estável 3.1.0, agora causa um erro fatal.

Isso provavelmente está acontecendo por causa da ativação do Unicode em 9a27803.

Veja Regular expression syntax cheat sheet - JavaScript | MDN

Observe que alguns caracteres como :, -, @, etc. não têm um significado especial quando escapados nem quando não escapados. Sequências de escape como \\:, \\-, \\@ serão equivalentes aos seus equivalentes literais de caracteres não escapados em expressões regulares. No entanto, em expressões regulares com o flag unicode, isso causará um erro de identidade de escape inválida. Isso é feito para garantir a compatibilidade com versões anteriores de código existente que usa novas sequências de escape como \\p ou \\k.

mas seria bom se houvesse um manipulador de exceções aqui.

10 curtidas

Temos isso priorizado agora, vamos cuidar disso nas próximas 4 semanas.

7 curtidas

Isso foi corrigido:

Estou atualmente investigando uma maneira de habilitar a validação de expressões regulares de JS do lado do Ruby. Espero ter uma correção pronta em breve.

6 curtidas

Comecei a receber erro 500 em novas postagens desde uma atualização recente (semana passada). Também houve erros relacionados a e-mails (no sidekiq, estava relacionado a palavras monitoradas). Só notei isso hoje. Tentei executar uma atualização, mas o erro 500 ao postar ainda estava presente. A única solução alternativa que encontrei por enquanto é remover todas as palavras monitoradas.

Não consigo reproduzir sem mais informações. Você tem a configuração do site watched_words_regular_expressions habilitada? Você pode fazer o upload da sua lista de palavras observadas para que eu possa testar? Ou talvez verificar seus logs (https://seu-forum/logs) e postar aqui os stack traces relacionados às palavras observadas.

Você tem a configuração do site watched_words_regular_expressions ativada? → Não

Fiz alguns testes, parece que só acontece com curingas
asteriscoexemploasterisco → isso dá erro 500
exemplo → é substituído corretamente

asterisco é *

@RGJ você sente que o OP foi abordado?

Nós mesclamos este PR:

2 curtidas