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

Issue 631993 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

devtools: crash when double-navigating to a slow to commit URL

Project Member Reported by csharrison@chromium.org, Jul 27 2016

Issue description

Steps to repro:
 - Have a slow to commit URL
 - Open up devtools
 - Navigate to the URL
 - Before it commits, navigate to it again (i.e. ctrl-l + enter)
 - crash

trace:
#0 0x7fdd7362245e base::debug::StackTrace::StackTrace()
#1 0x7fdd7364364b logging::LogMessage::~LogMessage()
#2 0x7fdd70f6952c content::RenderFrameDevToolsAgentHost::AboutToNavigateRenderFrame()
#3 0x7fdd70ffbe8b content::RenderFrameHostImpl::SetNavigationsSuspended()
#4 0x7fdd710003e1 content::RenderFrameHostManager::OnBeforeUnloadACK()
#5 0x7fdd70ff1028 content::RenderFrameHostImpl::OnBeforeUnloadACK()
#6 0x7fdd70ff0aa4 _ZN3IPC8MessageTI34FrameHostMsg_BeforeUnload_ACK_MetaSt5tupleIJbN4base9TimeTicksES4_EEvE8DispatchIN7content19RenderFrameHostImplES9_vMS9_FvbRKS4_SB_EEEbPKNS_7MessageEPT_PT0_PT1_T2_
#7 0x7fdd70fedbf3 content::RenderFrameHostImpl::OnMessageReceived()

 
Labels: Needs-Bisect
Note this is in TOT synced to #408110
Owner: dgozman@chromium.org
Status: Assigned (was: Untriaged)
Any specific URL you are using? Also, do you have --enable-browser-side-navigation?
I was just using the following php:
<?php
echo date('h:i:s') . "<br>";

//sleep for 5 seconds
sleep(5);

//start again
echo date('h:i:s');
?>

This isn't using the PlzNavigate flag.
Labels: TE-NeedsfurtherTriage
Seems this can't be triaged from TE end, adding TE-NeedsFurtherTriage label to further triage.
Cc: clamy@chromium.org nasko@chromium.org
The problem here is that we expect RenderFrameDevToolsAgentHost::OnCancelPendingNavigation to be called (from the RenderFrameHostImpl::CancelPending) when user navigates while pending navigation is still in place.
This does not happen. @nasko, @clamy: is this expected?
Labels: -Needs-Bisect -TE-NeedsfurtherTriage TE-NeedsTriageHelp
Requesting Dev team for further triaging since there is no manual reproducible steps. 
I'll see if I can run a bisect.
bisect-builds isn't working because this is only crashing on a DCHECK. Is there a way to turn DCHECK_ALWAYS_ON for that script?

In any case, blackhole.webpagetest.org has the same behavior (that url never commits). That should make this easier to repro.

Comment 9 by nasko@chromium.org, Aug 17 2016

I have to dig into this some with the debugger, but thinking through it, I don't think it is valid to think that the pending RenderFrameHost will be cancelled when creating the new navigation. Poking at the code, I can see this comment, which backs it up:

// ... We will reuse the pending RFH below if it matches the destination
// SiteInstance.

https://cs.chromium.org/chromium/src/content/browser/frame_host/render_frame_host_manager.cc?rcl=1471375518&l=2246
Good point. I confirmed that this does not repro if I try to double navigate same-site to a slow to commit URL.
For the record: naive solution to skip SetPending in this case didn't work. Seems like we miss initialization in this case.

if (pending_ && pending_->host() == new_host) return;

Status: WontFix (was: Assigned)
This is not crashing with browser side navigation, so I am tentatively closing this.

Sign in to add a comment