New issue
Advanced search Search tips

Issue 709064 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 702490
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Uncaught RangeError: Maximum call stack size exceeded

Reported by baron...@gmail.com, Apr 6 2017

Issue description

UserAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36

Steps to reproduce the problem:
On some ASP.Net web application with lastest released telerik components (2017.Q1), when form is submitted, an error occurs.

Uncaught RangeError: Maximum call stack size exceeded
    at RegExp.exec (<anonymous>)
    at Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_ScriptManager_Master_ScriptManager_TSM&compr…:3
    at p (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_ScriptManager_Master_ScriptManager_TSM&compr…:3)
    at Object._find (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_ScriptManager_Master_ScriptManager_TSM&compr…:3)
    at Object.get (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_ScriptManager_Master_ScriptManager_TSM&compr…:3)
    at H.w.getElementById (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_ScriptManager_Master_ScriptManager_TSM&compr…:3)
    at Sys.Extended.UI.TextBoxWrapper.validatorGetValue (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_ScriptManager_Master_ScriptManager_TSM&compr…:7830)
    at Function.window.ValidatorGetValue [as _originalValidatorGetValue] (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_ScriptManager_Master_ScriptManager_TSM&compr…:26982)
    at Sys.Extended.UI.TextBoxWrapper.validatorGetValue (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_ScriptManager_Master_ScriptManager_TSM&compr…:7830)
    at Function.window.ValidatorGetValue [as _originalValidatorGetValue] (Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=ctl00_ScriptManager_Master_ScriptManager_TSM&compr…:26982)

What is the expected behavior?
No Javascript error.

What went wrong?
No error with previous version (57.0.2987.110). Web application has not been updated between the 2 releases of Chrome.

Customers report incident since last monday.

Did this work before? Yes 57.0.2987.110

Chrome version: 57.0.2987.133  Channel: stable
OS Version: 6.1 (Windows 7, Windows Server 2008 R2)
Flash Version:
 
telerik.JPG
71.7 KB View Download
Components: -Blink Blink>JavaScript>Runtime
Labels: Needs-Bisect Needs-Triage-M58
It would be great if you could provide a reproducible testcase for narrowing down the issue.

Comment 3 by baron...@gmail.com, Apr 6 2017

Unfortunately the app UI is built using a company framework, and I can't extract a simple testcase :(
Labels: -Needs-Bisect TE-NeedsTriageHelp
Could any one from dev team please look into this issue.

Comment 5 by baron...@gmail.com, Apr 7 2017

@Ligim... : I can give you access to the web application. Please drop me an email with maybe a random string that you post here (so I can identify you) and I'll give you login/pwd.

Comment 6 by baron...@gmail.com, Apr 7 2017

The error is not systematic, but really frequent. Sometimes it's on the first submit, sometimes after 2 or 3 edit/save actions in the same screen. But it happens a lot on many screens of our app.

Please find enclosed a gif animation.

Thanks for your time.
Regards,
François
javascript-error-with-chromium.gif
232 KB View Download
Cc: hablich@chromium.org yangguo@chromium.org jgruber@chromium.org
Status: Available (was: Unconfirmed)
Could you please try to reproduce it with Chrome Beta 58 and follow the guidelines at https://v8project.blogspot.de/2017/02/help-us-test-future-of-v8.html?
Interesting, seems like there's a stack overflow during the regexp execution.

You could try to extract the regexp that's causing this by hacking something like this together and then running the application:

var exec = RegExp.prototype.exec;
RegExp.prototype.exec = function(str) { print(this); print(str); return exec.call(this, str); }

A repro case with both the regexp and subject string would be very helpful.
I mean console.log instead of print.

Comment 12 by baron...@gmail.com, Apr 13 2017

/^([\$#\.])((\w|[$:\.\-])+)$/

I am not sure it is related to regex
regex-console-log.png
22.9 KB View Download
The stack trace from the initial post does seem point to an overflow in regexp execution, but I agree that the regexp you posted seems fairly harmless. 

Was the RangeError thrown from that regexp? I don't see an exception in your screenshot from #12.
Cc: -jgruber@chromium.org
Owner: jgruber@chromium.org
Status: Assigned (was: Available)

Comment 15 by baron...@gmail.com, Apr 13 2017

There are endless calls between 2 telerik javascript functions (images #1, #2, #3).

Have a look at #4: the expected value is in a.value, but code isn't reached.

@hablich: not reproduced for now with beta 58. 


telerik-1.jpg
187 KB View Download
telerik-2.jpg
31.8 KB View Download
telerik-3.jpg
54.5 KB View Download
telerik-4.png
46.0 KB View Download
Cc: jgruber@chromium.org
Owner: ----
Status: WontFix (was: Assigned)
I see, thanks for investigating. That does look like the root cause is the recursive call between w.ValidatorGetValue and S.E.UI.T.validatorGetValue.

That the stack overflow exception is thrown in RegExp.p.exec seems incidental (it probably happens when trying to reserve stack space for internal registers).

Same issue here by the way: http://www.telerik.com/forums/error-telerik-web-ui-webresource

This probably needs to be fixed by Telerik.
Please feel free to reopen if you do find a repro in beta 58.
Users just reproduced the same issue/error using the beta 58 version of Chrome.
Please reopen...
Status: Untriaged (was: WontFix)
Needs retriaging. #11 lists the commit range. A repro would be very helpful in tracking this down.
Labels: Needs-Bisect Needs-Feedback
Requested access to the affected web app by mail to baronnet@gmail.com.

Comment 23 by baron...@gmail.com, Apr 21 2017

Instructions have been sent. Thanks. 
Reproduced locally on a Linux64 build. Started to bisect but access to the private app was revoked before I finished.

Latest known good build: 57.0.2925.0
Earliest known bad build: 57.0.2987.0
Labels: -Needs-Feedback -Needs-Bisect
Owner: mlippautz@chromium.org
Status: Assigned (was: Untriaged)
Bisects to:

https://chromium.googlesource.com/v8/v8/+/fb8b3bcc821cf11c22593d2773c5f06823acd53f
Reland "[heap] Ensure progress when incrementally marking wrappers"

Assigning to mlippautz@, PTAL.
Mergedinto: 702490
Status: Duplicate (was: Assigned)
Thanks a lot for bisecting. This is a timing issue.

What we see here is  issue 702490 . Loosing expando properties (additional properties on DOM objects) results in an infinite recursion in the app. The stack overflow in regex code is just the symptom.

We already backmerged a fix quite some time ago but Chrome M57 won't receive another update. At this point M58 (current beta) is right around the corner and the issue should be fixed there.

Please reopen if it also happens on Chrome M58 or newer.
Also, thanks for providing us access to the reproduction! Really helped a lot when investigating this issue.

Comment 29 by baron...@gmail.com, Apr 25 2017

Hi there, great news! Thanks for your time. Anyidea when the 58 will be released?
I am not involved in releases but it should be soon (tm), i.e., next couple of days I would guess.
Hi again, do you know if the 58.0.3029.96 release includes the fix?
Yes, it includes the fix. Let us know if you are still experiencing problems.
I will. Thanks for everything!

Sign in to add a comment