boost::algorithm::split_regex hangs and consumes CPU on dangling alternatives
- 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