Closed
Bug 1377105
Opened 7 years ago
Closed 7 years ago
Slow irregexp behavior for /^([0-9]*\.?[0-9]+)+\,[0-9]+$/
Categories
(Core :: JavaScript Engine, defect, P5)
Tracking
()
RESOLVED
DUPLICATE
of bug 1391654
People
(Reporter: glauber.md, Unassigned)
Details
Attachments
(1 file)
58.62 KB,
image/png
|
Details |
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36 OPR/46.0.2597.26
Steps to reproduce:
1) access website http://www.regexpal.com/
2) enter the following Regular Expression:
3) enter the folowing Test String: 000.000.000,000,00
Actual results:
The program freeze, I needed to kill the application.
Expected results:
Do not lock up entire browser (?)
Reporter | ||
Comment 1•7 years ago
|
||
(In reply to glauber.md from comment #0)
> Created attachment 8882154 [details]
> regexpal_ff54_freeze.PNG
>
> User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
> (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36 OPR/46.0.2597.26
>
> Steps to reproduce:
>
> 1) access website http://www.regexpal.com/
> 2) enter the following Regular Expression:
> 3) enter the folowing Test String: 000.000.000,000,00
>
>
> Actual results:
>
> The program freeze, I needed to kill the application.
>
>
> Expected results:
>
> Do not lock up entire browser (?)
The Regular Expression on 'Steps to reproduce - item #2' is: /^([0-9]*\.?[0-9]+)+\,[0-9]+$/
Sorry.
Updated•7 years ago
|
Comment 2•7 years ago
|
||
This seems to be a slow-script and not a hang (and less problematic now that e10s is on by default). I notice that Chrome also suffers on this case. If I start typing about twenty 0s into the test string, I get slow downs spent in the irregexp library.
Profile: https://perfht.ml/2xar2uQ
The regex itself is quite inefficient as written. Replacing with something like /^(\.?[0-9])+\,[0-9]+$/ does not have any perf problems.
Updated•7 years ago
|
Summary: Freeze on regexpal.com → Slow irregexp behavior for /^([0-9]*\.?[0-9]+)+\,[0-9]+$/
Comment 3•7 years ago
|
||
This is similar to bug 1391654 (and there are probably also older bugs for the same issue). The problem can be reduced to `/(a+)+b/.exec("a".repeat(30))`, which will also take its time due to catastrophic backtracking.
Comment 4•7 years ago
|
||
Thanks André. Let's close this as a duplicate. I like your reduced test case.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•