boost::algorithm::split_regex hangs and consumes CPU on dangling alternatives
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 38/100
Rechercherichtung
Beginne damit, den split_regex-Fall aus dem verlinkten Gist mit dem abschließenden ;|-Muster unter Verwendung der genannten Boost-1.65- oder 1.67-Umgebungen zu reproduzieren. Verfolge den Aufruf bis in den Boost-Algorithmus und das Regex-Verhalten, um festzustellen, warum die CPU-Nutzung nicht endet; abgeschlossen ist die Aufgabe, wenn die gemeldete Eingabe nicht mehr hängen bleibt und das Verhalten durch einen Regressionstest abgedeckt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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)
- Vorherrschende Sprache
- C++
- Sterne
- 131
- Forks
- 117
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus boostorg/algorithm
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
-
variadic min/max/minmaxOffen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
-
Automated formattingOffen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
Alle Issues in boostorg/algorithm
Ähnliche Issues
-
HasBacktrace Priority-Critical
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
azerothcore/azerothcore-wotlk#27921 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
yhirose/cpp-peglib#344 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 90/100
ExpressLRS/ExpressLRS#3805 ·
Maintainer antworten meist innerhalb von 2 Tagen