-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NonBacktracking engine is pathologically slow on patterns like "((((((((a)*)*)*)*)*)*)*" and input like "aaaaaaa" which other engines handle fine #84188
Comments
Tagging subscribers to this area: @dotnet/area-system-text-regularexpressions Issue DetailsAt least it is for me locally.
|
from PR: It's just
On the other two variants, NonBacktracking takes less than a second (but still slower than the others) |
cc @olsaarik |
top of the stack looks something like
Note that stack helper has switched threads to avoid a stack overflow. There appears to be recursion in StripEffects seems to be going down the SymbolicRegexNodeKind.Concat branch of the switch. There are other branches. Can the whole thing be made non recursive? Aside, there are ~20 places where we're protected with |
BTW, I think I'd expect to see it in
I'll let the area expert take this further 😄 |
This is still occurring; https://github.com/dotnet/runtime/pull/87369/files did not address all cases. Adding known issue template to offload from the too-general-purpose error message in #84323. |
removing blocking-clean-ci as it has not failed in 30 days
|
Build Information
Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=369767
Build error leg or test failing: System.Text.RegularExpressions.Tests.RegexMatchTests.StressTestDeepNestingOfLoops
Pull request: #90318
Known Issue Error Message
Report
Summary
Known issue validation
Build: 🔎⚠️ Provided build not found. Provide a valid build in the "Build: 🔎" line.
Result validation:
Validation performed at: 8/22/2023 7:37:08 PM UTC
The text was updated successfully, but these errors were encountered: