New issue
Advanced search Search tips

Issue 614860 link

Starred by 12 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Timeline stuck on the "Retrieving timeline..." aka Maximum call stack size exceeded

Reported by trusktr@gmail.com, May 25 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36

Steps to reproduce the problem:
1. Recorda timeline
2. Click "Finish"

What is the expected behavior?
The "Retrieving timeline..." dialog should eventually finish.

What went wrong?
Seems to stay there a really long time (forever?).

Did this work before? N/A 

Chrome version: 50.0.2661.102  Channel: n/a
OS Version: OS X 10.10.2
Flash Version: Shockwave Flash 21.0 r0

I don't have much info to give. I tried debugging the devtools, but there's no output in that case, no errors.
 
Components: -Platform>DevTools Platform>DevTools>Tracing
Owner: alph@chromium.org
Status: Assigned (was: Unconfirmed)

Comment 2 by alph@chromium.org, May 26 2016

Labels: Needs-Feedback
Yep, there's not enough info to track it down.
So you mean you opened DevTools on DevTools and there were no error messages in the console?
Can you share the site you was recording?
I have the same problem on all version of Chrome 50 that I've used as well as Chrome Canary. 

I do not have this problem on Chrome 49. I've been experiencing this consistently since updating from Chrome 49.

The CPU profiler demonstrates a similar problem.

It happens on a complicated React.js page that I'm developing, and two of my coworkers are experiencing the exact same problem.
Continuing ^, sorry.

I am using Mac OS 10.10.5, but I've deleted my Chrome 50 install so I'm not sure which exact version I had there.

Here is something interesting for the CPU Profiler case:

When I debug the dev tools using the dev tools, I see "Uncaught RangeError: Maximum call stack size exceeded" when I try to stop the timeline or CPU profile from recording.

In the timeline case, I see "Loading timeline...".

In the cpu profiler case, I just see "Recording..." underneath the name of the profile ("Profile 1").


I'm on Chrome 50.0.2661.94, and having exactly the same problem as a...@andymoreland.com, on a React.js app.

Comment 7 by trusktr@gmail.com, May 27 2016

I can't post a repro because the code is private. If I run into it on a public project I'll come back.

Comment 8 by trusktr@gmail.com, May 27 2016

The blue progress bar reaches all the way to the end and stays there in my case (in case that provides any hint).

Comment 9 by alph@chromium.org, May 27 2016

Cc: jochen@chromium.org yangguo@chromium.org
Labels: -Type-Bug -Needs-Feedback OS-All Type-Bug-Regression
Summary: Timeline stuck on the "Retrieving timeline..." aka Maximum call stack size exceeded (was: Timeline stuck on the "Retrieving timeline..." step.)
Looks like the cause is that V8 cannot parse a quite deeply nested object literals:

eval("foo="+"{children:[".repeat(250)+"]}".repeat(250))
VM761:1 Uncaught RangeError: Maximum call stack size exceeded(…)

The data structure is coming out of cpu profiler. It has a limit of 255 stack frames which is slightly higher than what V8 can handle.

Comment 10 by alph@chromium.org, May 27 2016

Cc: alph@chromium.org caseq@chromium.org ajha@chromium.org
 Issue 612003  has been merged into this issue.

Comment 11 by alph@chromium.org, May 27 2016

Components: Blink>JavaScript>Compiler
Labels: -Pri-2 ReleaseBlock-Stable M-50 Pri-1
Owner: ----
Status: Available (was: Assigned)
I bisected it to V8 4.10.1 roll https://chromium.googlesource.com/chromium/src/+/b5277dbe0c54f41d6cfd9344727bb314b083559d

Could v8 folks please take a look. We'd like to merge a fix into stable, as it breaks CPU profiling.
is there a reason you cant use JSON.parse?
Project Member

Comment 13 by bugdroid1@chromium.org, May 28 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a2b2954002b9f46a902bb23ed6a11ba4c0604096

commit a2b2954002b9f46a902bb23ed6a11ba4c0604096
Author: alph <alph@chromium.org>
Date: Sat May 28 04:06:07 2016

DevTools: Fix Maximum call stack size exceeded error while retrieving CPU profile.

Do not pass object literals into dispatchMessage API. Always turn it into a string.

BUG= 614860 

Review-Url: https://codereview.chromium.org/2022673002
Cr-Commit-Position: refs/heads/master@{#396633}

[modify] https://crrev.com/a2b2954002b9f46a902bb23ed6a11ba4c0604096/chrome/browser/devtools/devtools_ui_bindings.cc
[modify] https://crrev.com/a2b2954002b9f46a902bb23ed6a11ba4c0604096/content/shell/browser/shell_devtools_frontend.cc

Comment 14 by alph@chromium.org, May 28 2016

Labels: -M-50 Merge-Request-52 Merge-Request-51 M-51 M-52
Owner: alph@chromium.org
Status: Started (was: Available)

Comment 15 by tin...@google.com, May 29 2016

Labels: -Merge-Request-51 Merge-Review-51 Hotlist-Merge-Review
[Automated comment] Less than a week to go before stable on M51, we might already have a stable candidate build. Manual review required.

Comment 16 by tin...@google.com, May 29 2016

Labels: -Merge-Request-52 Merge-Approved-52 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M52 (branch: 2743)

Comment 17 by tin...@google.com, May 29 2016

Labels: -Merge-Request-51 Merge-Review-51 Hotlist-Merge-Review
[Automated comment] Less than a week to go before stable on M51, we might already have a stable candidate build. Manual review required.

Before we approve merge to M51, Could you please confirm whether this change is baked/verified in Canary and safe to merge?

Comment 19 by alph@chromium.org, May 30 2016

No Canary was built during the weekend, so it's not yet baked in. The change is safe though. I wonder if the approval process and testing in Canary could go in parallel?
I'm not going to merge it before it's verified in Canary anyway.
Labels: -Merge-Review-51 Merge-Approved-51
Approving Merge to M51 branch 2704 based on comment #19, please only merge after verifying in Canary and confirming it is a safe merge. Thank you.

Comment 21 by alph@chromium.org, May 31 2016

The Canary is here. Just checked that the patch works as expected. Thank you.

Project Member

Comment 22 by bugdroid1@chromium.org, May 31 2016

Labels: -merge-approved-51 merge-merged-2704
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bf58c68f985266678b7b6f40f10131b2fb7a6aa3

commit bf58c68f985266678b7b6f40f10131b2fb7a6aa3
Author: Alexei Filippov <alph@chromium.org>
Date: Tue May 31 08:32:03 2016

DevTools: Fix Maximum call stack size exceeded error while retrieving CPU profile.

Do not pass object literals into dispatchMessage API. Always turn it into a string.

BUG= 614860 

Review-Url: https://codereview.chromium.org/2022673002
Cr-Commit-Position: refs/heads/master@{#396633}
(cherry picked from commit a2b2954002b9f46a902bb23ed6a11ba4c0604096)

Review URL: https://codereview.chromium.org/2024813002 .

Cr-Commit-Position: refs/branch-heads/2704@{#682}
Cr-Branched-From: 6e53600def8f60d8c632fadc70d7c1939ccea347-refs/heads/master@{#386251}

[modify] https://crrev.com/bf58c68f985266678b7b6f40f10131b2fb7a6aa3/chrome/browser/devtools/devtools_ui_bindings.cc
[modify] https://crrev.com/bf58c68f985266678b7b6f40f10131b2fb7a6aa3/content/shell/browser/shell_devtools_frontend.cc

Project Member

Comment 23 by bugdroid1@chromium.org, May 31 2016

Labels: -merge-approved-52 merge-merged-2743
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/172c3abbe1f4c439df2e1259a75b11f4b1195e94

commit 172c3abbe1f4c439df2e1259a75b11f4b1195e94
Author: Alexei Filippov <alph@chromium.org>
Date: Tue May 31 08:36:36 2016

DevTools: Fix Maximum call stack size exceeded error while retrieving CPU profile.

Do not pass object literals into dispatchMessage API. Always turn it into a string.

BUG= 614860 

Review-Url: https://codereview.chromium.org/2022673002
Cr-Commit-Position: refs/heads/master@{#396633}
(cherry picked from commit a2b2954002b9f46a902bb23ed6a11ba4c0604096)

Review URL: https://codereview.chromium.org/2018353006 .

Cr-Commit-Position: refs/branch-heads/2743@{#134}
Cr-Branched-From: 2b3ae3b8090361f8af5a611712fc1a5ab2de53cb-refs/heads/master@{#394939}

[modify] https://crrev.com/172c3abbe1f4c439df2e1259a75b11f4b1195e94/chrome/browser/devtools/devtools_ui_bindings.cc
[modify] https://crrev.com/172c3abbe1f4c439df2e1259a75b11f4b1195e94/content/shell/browser/shell_devtools_frontend.cc

Comment 24 by alph@chromium.org, May 31 2016

Status: Fixed (was: Started)
Labels: TE-Verified-M51 TE-Verified-M52 TE-Verified-52.0.2743.19 TE-Verified-51.0.2704.78
Verified the issue on Mac 10.11.5,Ubuntu 14.04 and Win 7 using stable # 51.0.2704.78 and Dev 52.0.2743.19, its working fine.
614860_June_1.mp4
903 KB Download

Comment 26 by alph@chromium.org, Jun 3 2016

You cannot verify it on the chrome://version page.

I verified it on M51 MacOS and Linux with the testcase attached.

Google Chrome	51.0.2704.79 (Official Build) (64-bit)
Revision	e300a2fe0cfcf2cc3bb5d753043e73967c33c749-refs/branch-heads/2704@{#690}

rec.html
200 bytes View Download

Sign in to add a comment