New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 821022 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Entire web app crashes in the new chrome release 65

Reported by elton2j...@gmail.com, Mar 12 2018

Issue description

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

Steps to reproduce the problem:
1. Go to https://web.flock.com
2. Sign up or login using your gmail account or use these creds (flockchrome@yopmail.com/123456)
3. When through, the app crashes entirely after loading some sections of the app.

What is the expected behavior?
Shouldn't crash

What went wrong?
when tried on Chrome with --enable-logging, it shows this error: 
[21291:775:0312/153208.920196:ERROR:bad_message.cc(25)] Terminating renderer for bad IPC message, reason 188

Crashed report ID:  crash/1b7c30493c07a2ef

How much crashed? Just one tab

Is it a problem with a plugin? No 

Did this work before? Yes Chrome 64

Chrome version: 65.0.3325.146  Channel: stable
OS Version: OS X 10.12.6
Flash Version: 

We used chromium bisect-builds util to get to this message:

You are probably looking for a change made after 522194 (known good), but no later than 522207 (first known bad).
CHANGELOG URL: https://chromium.googlesource.com/chromium/src/+log/e9ef5260cdea70b3f1aabf1bf19ee1985d01c236..8e333b2c009f030f93165d00c7a858d6bb1518a2
 

Comment 1 by rsesek@chromium.org, Mar 12 2018

Components: UI>Browser>Navigation
Labels: -Pri-2 Pri-1
Owner: engedy@chromium.org
Status: Assigned (was: Unconfirmed)
Thanks for the report and the bisect - that's very helpful.

I'm guessing this is https://chromium.googlesource.com/chromium/src/+/0c8d550bb4f71ad5fb82abbcf772abb9ff42e25c.

[Renderer kill 188] content::RenderFrameHostImpl::DidCommitProvisionalLoad

0x000000010d2c361b	(Google Chrome Framework -crashpad.cc:235 )	crash_reporter::DumpWithoutCrashing()
0x000000010a967c31	(Google Chrome Framework -dump_without_crashing.cc:23 )	base::debug::DumpWithoutCrashing()
0x00000001095fda2e	(Google Chrome Framework -render_process_host_impl.cc:2243 )	content::RenderProcessHostImpl::ShutdownForBadMessage(content::RenderProcessHost::CrashReportMode)
0x000000010947c3d3	(Google Chrome Framework -render_frame_host_impl.cc )	content::RenderFrameHostImpl::DidCommitProvisionalLoad(std::__1::unique_ptr<FrameHostMsg_DidCommitProvisionalLoad_Params, std::__1::default_delete<FrameHostMsg_DidCommitProvisionalLoad_Params> >, mojo::InterfaceRequest<service_manager::mojom::InterfaceProvider>)
0x0000000108cdf643	(Google Chrome Framework -frame.mojom.cc:2243 )	content::mojom::FrameHostStubDispatch::Accept(content::mojom::FrameHost*, mojo::Message*)
0x000000010acac795	(Google Chrome Framework -ipc_mojo_bootstrap.cc:789 )	IPC::(anonymous namespace)::ChannelAssociatedGroupController::AcceptOnProxyThread(mojo::Message)
0x000000010acab228	(Google Chrome Framework -bind_internal.h:211 )	base::internal::Invoker<base::internal::BindState<void (IPC::(anonymous namespace)::ChannelAssociatedGroupController::*)(mojo::Message), scoped_refptr<IPC::(anonymous namespace)::ChannelAssociatedGroupController>, base::internal::PassedWrapper<mojo::Message> >, void ()>::Run(base::internal::BindStateBase*)
0x000000010a9690fb	(Google Chrome Framework -callback.h:65 )	base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*)
0x000000010a98dc43	(Google Chrome Framework -message_loop.cc:399 )	base::MessageLoop::RunTask(base::PendingTask*)
0x000000010a98e148	(Google Chrome Framework -message_loop.cc:411 )	base::MessageLoop::DoWork()
0x000000010a98ff69	(Google Chrome Framework -message_pump_mac.mm:453 )	base::MessagePumpCFRunLoopBase::RunWork()
0x000000010a981a29	(Google Chrome Framework + 0x01dcaa29 )	base::mac::CallWithEHFrame(void () block_pointer)
0x000000010a98f88e	(Google Chrome Framework -message_pump_mac.mm:429 )	base::MessagePumpCFRunLoopBase::RunWorkSource(void*)
0x00007fff92814320	(CoreFoundation + 0x000a7320 )	__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
0x00007fff927f521c	(CoreFoundation + 0x0008821c )	__CFRunLoopDoSources0
0x00007fff927f4715	(CoreFoundation + 0x00087715 )	__CFRunLoopRun
0x00007fff927f4113	(CoreFoundation + 0x00087113 )	CFRunLoopRunSpecific
0x00007fff91d54ebb	(HIToolbox + 0x00030ebb )	RunCurrentEventLoopInMode
0x00007fff91d54cf0	(HIToolbox + 0x00030cf0 )	ReceiveNextEventCommon
0x00007fff91d54b25	(HIToolbox + 0x00030b25 )	_BlockUntilNextEventMatchingListInModeWithFilter
0x00007fff902eba53	(AppKit + 0x00046a53 )	_DPSNextEvent
0x00007fff90a677ed	(AppKit + 0x007c27ed )	-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
0x000000010a5c50cf	(Google Chrome Framework -chrome_browser_application_mac.mm:174 )	__71-[BrowserCrApplication nextEventMatchingMask:untilDate:inMode:dequeue:]_block_invoke
0x000000010a981a29	(Google Chrome Framework + 0x01dcaa29 )	base::mac::CallWithEHFrame(void () block_pointer)
0x000000010a5c5013	(Google Chrome Framework -chrome_browser_application_mac.mm:173 )	-[BrowserCrApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
0x00007fff90a68ee2	(AppKit + 0x007c3ee2 )	_NSHLTBMenuEventProc
0x00007fff91dae361	(HIToolbox + 0x0008a361 )	IsUserStillTracking(MenuSelectData*, unsigned char*)
0x00007fff91ed5dc3	(HIToolbox + 0x001b1dc3 )	TrackMenuCommon(MenuSelectData&, unsigned char*, SelectionData*, MenuResult*, MenuResult*)
0x00007fff91dba222	(HIToolbox + 0x00096222 )	MenuSelectCore(MenuData*, Point, double, unsigned int, OpaqueMenuRef**, unsigned short*)
0x00007fff91db9f65	(HIToolbox + 0x00095f65 )	_HandleMenuSelection2
0x00007fff9046c367	(AppKit + 0x001c7367 )	_NSHandleCarbonMenuEvent
0x00007fff906e6701	(AppKit + 0x00441701 )	_DPSEventHandledByCarbon
0x00007fff90a670c4	(AppKit + 0x007c20c4 )	-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
0x000000010a5c50cf	(Google Chrome Framework -chrome_browser_application_mac.mm:174 )	__71-[BrowserCrApplication nextEventMatchingMask:untilDate:inMode:dequeue:]_block_invoke
0x000000010a981a29	(Google Chrome Framework + 0x01dcaa29 )	base::mac::CallWithEHFrame(void () block_pointer)
0x000000010a5c5013	(Google Chrome Framework -chrome_browser_application_mac.mm:173 )	-[BrowserCrApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
0x00007fff902e03da	(AppKit + 0x0003b3da )	-[NSApplication run]
0x000000010a99082b	(Google Chrome Framework -message_pump_mac.mm:806 )	base::MessagePumpNSApplication::DoRun(base::MessagePump::Delegate*)
0x000000010a98f3ad	(Google Chrome Framework -message_pump_mac.mm:180 )	base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*)
0x000000010a9b3514	(Google Chrome Framework -run_loop.cc:130 )	<name omitted>
0x000000010a5caf07	(Google Chrome Framework -chrome_browser_main.cc:1973 )	ChromeBrowserMainParts::MainMessageLoopRun(int*)
0x000000010933b2d3	(Google Chrome Framework -browser_main_loop.cc:1236 )	content::BrowserMainLoop::RunMainMessageLoopParts()
0x000000010933dca1	(Google Chrome Framework -browser_main_runner.cc:145 )	content::BrowserMainRunnerImpl::Run()
0x00000001093378cb	(Google Chrome Framework -browser_main.cc:46 )	content::BrowserMain(content::MainFunctionParams const&)
0x000000010a57dd2f	(Google Chrome Framework -content_main_runner.cc:717 )	content::ContentMainRunnerImpl::Run()
0x000000010be93f6a	(Google Chrome Framework -main.cc:456 )	service_manager::Main(service_manager::MainParams const&)
0x000000010a57d273	(Google Chrome Framework -content_main.cc:19 )	content::ContentMain(content::ContentMainParams const&)
0x0000000108bbae69	(Google Chrome Framework -chrome_main.cc:129 )	ChromeMain
0x000000010177fdd3	(Google Chrome -chrome_exe_main_mac.cc:165 )	main
0x00007fffa7f7b234	(libdyld.dylib + 0x00005234 )	start
0x00007fffa7f7b234	(libdyld.dylib + 0x00005234 )	start

Comment 2 by engedy@chromium.org, Mar 12 2018

Labels: OS-Android OS-Chrome OS-Linux OS-Windows
@elton2jain, as a work-around, any chance you can tweak your app so as to avoid having a navigation from:

  about:blank

to:

  about:blank#__platform=BROWSER&__containerType=

in the frame where there is subsequently a navigation to:

  https://web.flock.com/2.2.57/client_base/apps/group_conversation/index.html#

Comment 3 by engedy@chromium.org, Mar 12 2018

Regarding the cause, it seems like the problem is with an initial `about:blank` to `about:blank#ref` navigation. This classifies as a same-document navigation, yet committing the second URL flips the RenderFrameHostImpls's `has_committed_real_load()` flag.

This way, a third navigation to a URL that is same-origin with the parent frame is not considered the first real load by content/browser, but it is considered that by Blink.

I'm working on a fix.
 Issue 820980  has been merged into this issue.

Comment 5 by engedy@chromium.org, Mar 12 2018

Issue 821039 has been merged into this issue.

Comment 6 by engedy@chromium.org, Mar 12 2018

Cc: creis@chromium.org dcheng@chromium.org nasko@chromium.org
Labels: M-65 ReleaseBlock-Stable
Based on the bug report and provided details this is a regression which started in M65, hence marking the bug as stable blocker.
Cc: pbomm...@chromium.org gov...@chromium.org
Labels: RegressedIn-65 M-66 M-67 Target-66 Target-65

Comment 9 by engedy@chromium.org, Mar 12 2018

Status: Started (was: Assigned)
Fix under review in https://crrev.com/c/958925.
Labels: -ReleaseBlock-Stable
As per discussion with CC'ed folks, given the relatively low crash rate and the fact the fix has not had any time bake yet, we will proceed with the current M65 respin without this fix as planned to fix the other critical issues; but at the same time try to get https://crrev.com/c/958925 landed ASAP so that it can be included in the next M65 respin if at all possible.
Also, in the meantime it looks like web.flock.com has been tweaked and is back in working order.
Project Member

Comment 12 by bugdroid1@chromium.org, Mar 12 2018

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

commit c8a7cccf6d7bd53821b7e860446d3768ff0aaa91
Author: Balazs Engedy <engedy@chromium.org>
Date: Mon Mar 12 23:00:49 2018

Let `about:blank#ref` also be classified as initial empty document.

Before this CL, content::FrameTreeNode used to classify only the literal
`about:blank` as the URL corresponding to the initial empty document.

However, navigations from the initial empty document to URLs such as
`about:blank#ref` are same-document and therefore re-use the initial
empty document, so committing any such same-document navigations should
not be considered "real loads" by FrameTreeNode (given they are not
considered "real loads" by Blink).

This CL changes FrameTreeNode::SetCurrentURL() to use !IsAboutBlank() to
determine whether the first real load is currently taking place in a
frame, that is, whether it is a first time a URL is being committed that
is not the initial empty document (modulo an optional #fragment).

Bug:  821022 , 729021
Change-Id: I040a11f58bf27174e0c450377f8cd81a7abeac70
Reviewed-on: https://chromium-review.googlesource.com/958925
Reviewed-by: Charlie Reis <creis@chromium.org>
Commit-Queue: Balazs Engedy <engedy@chromium.org>
Commit-Queue: Charlie Reis <creis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542645}
[modify] https://crrev.com/c8a7cccf6d7bd53821b7e860446d3768ff0aaa91/content/browser/frame_host/frame_tree_node.cc
[modify] https://crrev.com/c8a7cccf6d7bd53821b7e860446d3768ff0aaa91/content/browser/frame_host/render_frame_host_impl_browsertest.cc

Comment 13 by at...@flock.com, Mar 13 2018

Thanks for taking this up on priority. We were able to deploy a fix as suggested by engedy to web.flock.com and webapp seems to be working fine now. It would be great if this fix lands to stable branch in next spin. 
engedy@chromuum.org thanks for the initial pointers. it helped for a quick fix.
Issue 821017 has been merged into this issue.
Labels: Merge-Request-66
Project Member

Comment 17 by sheriffbot@chromium.org, Mar 21 2018

Labels: -Merge-Request-66 Merge-Review-66 Hotlist-Merge-Review
This bug requires manual review: M66 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), josafat@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -M-65 -Target-65
Now with web.flock.com fixed, crashes are no longer concentrated on any single site, and the overall crash rate is rather low (<0.1 in a million page loads). 

With that, I would propose not trying to merge this to M65. Still, we should try to squeeze it into M66.
Labels: -Merge-Review-66 Merge-Approved-66
Approving merge to M66. Branch:3359
Project Member

Comment 20 by bugdroid1@chromium.org, Mar 25 2018

Labels: -merge-approved-66 merge-merged-3359
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/435b91b4297de17578c3cf4cd0375dbdc394eba1

commit 435b91b4297de17578c3cf4cd0375dbdc394eba1
Author: Balazs Engedy <engedy@chromium.org>
Date: Sun Mar 25 10:34:43 2018

Let `about:blank#ref` also be classified as initial empty document.

Before this CL, content::FrameTreeNode used to classify only the literal
`about:blank` as the URL corresponding to the initial empty document.

However, navigations from the initial empty document to URLs such as
`about:blank#ref` are same-document and therefore re-use the initial
empty document, so committing any such same-document navigations should
not be considered "real loads" by FrameTreeNode (given they are not
considered "real loads" by Blink).

This CL changes FrameTreeNode::SetCurrentURL() to use !IsAboutBlank() to
determine whether the first real load is currently taking place in a
frame, that is, whether it is a first time a URL is being committed that
is not the initial empty document (modulo an optional #fragment).

Bug:  821022 , 729021
Change-Id: I040a11f58bf27174e0c450377f8cd81a7abeac70
Reviewed-on: https://chromium-review.googlesource.com/958925
Reviewed-by: Charlie Reis <creis@chromium.org>
Commit-Queue: Balazs Engedy <engedy@chromium.org>
Commit-Queue: Charlie Reis <creis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#542645}(cherry picked from commit c8a7cccf6d7bd53821b7e860446d3768ff0aaa91)
Reviewed-on: https://chromium-review.googlesource.com/979652
Reviewed-by: Balazs Engedy <engedy@chromium.org>
Cr-Commit-Position: refs/branch-heads/3359@{#418}
Cr-Branched-From: 66afc5e5d10127546cc4b98b9117aff588b5e66b-refs/heads/master@{#540276}
[modify] https://crrev.com/435b91b4297de17578c3cf4cd0375dbdc394eba1/content/browser/frame_host/frame_tree_node.cc
[modify] https://crrev.com/435b91b4297de17578c3cf4cd0375dbdc394eba1/content/browser/frame_host/render_frame_host_impl_browsertest.cc

Status: Fixed (was: Started)

Sign in to add a comment