boostorg / boostorg/algorithm

boost::algorithm::split_regex hangs and consumes CPU on dangling alternatives

Aberta
#68 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
C++
Estrelas
131
Forks
117
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

I happened to typo a regex, and I noticed that `boost::algorithm::split_regex` started consuming a bunch of CPU. I don't know is this would have eventually caught itself and terminating. The regex in question was `;|`, and this appears to be true for any dangling `|`.

I'm a bit surprised that `boost::regex` allowed `;|` as valid, given split_regex's behavior.

Simple example up at https://gist.github.com/directionless/c38eb7dc216bcd93b40c3ecaf99f326e

I tested this on darwin with boost 1.67, and on linux with boost 1.65

(This was moved here from https://github.com/boostorg/regex/issues/76)

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Direção de pesquisa

Comece reproduzindo o caso `split_regex` do gist vinculado com o padrão `;|` pendente, usando os ambientes Boost 1.65 ou 1.67 mencionados. Rastreie a chamada até o algoritmo do Boost e o comportamento de regex para identificar por que o uso da CPU não termina; considera-se concluído quando a entrada relatada não trava mais e o comportamento está coberto por um teste de regressão.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
cpp
Domínio
tooling
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
38/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.