boost::algorithm::split_regex hangs and consumes CPU on dangling alternatives
- Langage dominant
- C++
- Étoiles
- 131
- Forks
- 117
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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)
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par reproduire le cas `split_regex` du gist lié avec le motif `;|` final, en utilisant les environnements Boost 1.65 ou 1.67 mentionnés. Suivez l’appel jusque dans l’algorithme Boost et le comportement de regex afin d’identifier pourquoi l’utilisation du CPU ne se termine pas ; le travail est considéré comme terminé lorsque l’entrée signalée ne se bloque plus et que le comportement est couvert par un test de régression.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp
- Domaine
- tooling
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 38/100