| Issue 100521: | Chrome: Crash Report - Stack Signature: InstantController::PrepareForCommit()-f9109... | |
| 10 people starred this issue and may be notified of changes. | Back to list |
Sign in to add a comment
|
May be this changeset would have caused this crash: http://src.chromium.org/viewvc/chrome?view=rev&revision=105309 Product: Chrome Stack Signature: InstantController::PrepareForCommit()-CC797E New Signature Label: InstantController::PrepareForCommit() New Signature Hash: f9109d56_759a0799_6193dba3_e35c606d_af94a524 Report link: http://go/crash/reportdetail?reportid=2d9b520df07c4d6e Meta information: Product Name: Chrome Product Version: 16.0.910.0 Report ID: 2d9b520df07c4d6e Report Time: 2011/10/16 23:00:27, Sun Uptime: 750 sec Cumulative Uptime: 0 sec OS Name: Windows NT OS Version: 6.1.7601 Service Pack 1 CPU Architecture: x86 CPU Info: GenuineIntel family 6 model 23 stepping 10 ptype:browser Thread 0 *CRASHED* ( EXCEPTION_ACCESS_VIOLATION_READ @ 0x00000039 ) 0x68d98889 [chrome.dll - instant_controller.cc:235 InstantController::PrepareForCommit() 0x68cad5a4 [chrome.dll - browser.cc:5151 Browser::OpenInstant(WindowOpenDisposition) 0x68ca730e [chrome.dll - browser.cc:1550 Browser::OpenCurrentURL() 0x68ca8f99 [chrome.dll - browser.cc:2680 Browser::ExecuteCommandWithDisposition(int,WindowOpenDisposition) 0x68ea18aa [chrome.dll - location_bar_view.cc:837 LocationBarView::OnAutocompleteAccept(GURL const &,WindowOpenDisposition,content::PageTransition,GURL const &) 0x68f59345 [chrome.dll - autocomplete_edit.cc:569 AutocompleteEditModel::OpenMatch(AutocompleteMatch const &,WindowOpenDisposition,GURL const &,unsigned int,std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &) 0x68f51e03 [chrome.dll - omnibox_view_win.cc:609 OmniboxViewWin::OpenMatch(AutocompleteMatch const &,WindowOpenDisposition,GURL const &,unsigned int,std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &) 0x68f58f97 [chrome.dll - autocomplete_edit.cc:484 AutocompleteEditModel::AcceptInput(WindowOpenDisposition,bool) 0x68f53bae [chrome.dll - omnibox_view_win.cc:1899 OmniboxViewWin::OnKeyDownOnlyWritable(wchar_t,unsigned int,unsigned int) 0x68f53162 [chrome.dll - omnibox_view_win.cc:1389 OmniboxViewWin::OnKeyDown(wchar_t,unsigned int,unsigned int) 0x68f50f6c [chrome.dll - omnibox_view_win.h:189 OmniboxViewWin::ProcessWindowMessage(HWND__ *,unsigned int,unsigned int,long,long &,unsigned long) 0x68f55698 [chrome.dll - atlwin.h:3081] ATL::CWindowImplBaseT<WTL::CRichEditCtrlT<ATL::CWindow>,ATL::CWinTraits<1342177664,0> >::WindowProc(HWND__ *,unsigned int,unsigned int,long) 0x76f362f9 [user32.dll + 0x000162f9] InternalCallWinProc 0x76f36d39 [user32.dll + 0x00016d39] UserCallWinProcCheckWow 0x76f377c3 [user32.dll + 0x000177c3] DispatchMessageWorker 0x76f37889 [user32.dll + 0x00017889] DispatchMessageW 0x69489600 [chrome.dll - accelerator_handler_win.cc:54 views::AcceleratorHandler::Dispatch(tagMSG const &) 0x68bf14a6 [chrome.dll - message_pump_win.cc:354 base::MessagePumpForUI::ProcessMessageHelper(tagMSG const &) 0x68bf12ff [chrome.dll - message_pump_win.cc:199 base::MessagePumpForUI::DoRunLoop() 0x68bf111e [chrome.dll - message_pump_win.cc:51 base::MessagePumpWin::RunWithDispatcher(base::MessagePump::Delegate *,base::MessagePumpWin::Dispatcher *) 0x68bd7303 [chrome.dll - message_loop.cc:439 MessageLoop::RunInternal() 0x68bd7293 [chrome.dll - message_loop.cc:417 MessageLoop::RunHandler() 0x68bd7a2b [chrome.dll - message_loop.cc:830 MessageLoopForUI::Run(base::MessagePumpWin::Dispatcher *) 0x68cef49a [chrome.dll - chrome_browser_main.cc:1950 ChromeBrowserMainParts::MainMessageLoopRun() 0x69110c16 [chrome.dll - browser_main.cc:437 BrowserMain(MainFunctionParams const &) 0x68bf99aa [chrome.dll - content_main.cc:252 `anonymous namespace'::RunNamedProcessTypeMain(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,MainFunctionParams const &,content::ContentMainDelegate *) 0x68bf9d40 [chrome.dll - content_main.cc:442 content::ContentMain(HINSTANCE__ *,sandbox::SandboxInterfaceInfo *,content::ContentMainDelegate *) 0x68ab295a [chrome.dll - chrome_main.cc:28 ChromeMain 0x000b1dd2 [chrome.exe - client_util.cc:346 MainDllLoader::Launch(HINSTANCE__ *,sandbox::SandboxInterfaceInfo *) 0x000b10c8 [chrome.exe - chrome_exe_main_win.cc:36 wWinMain 0x0010a1e7 [chrome.exe - crt0.c:263 __tmainCRTStartup 0x76383399 [kernel32.dll + 0x00013399] BaseThreadInitThunk 0x77cb9ed1 [ntdll.dll + 0x00039ed1] __RtlUserThreadStart 0x77cb9ea4 [ntdll.dll + 0x00039ea4] _RtlUserThreadStart
Comment
1
by
dhar...@google.com,
Oct 16, 2011
,
Oct 17, 2011
The following revision refers to this bug:
http://src.chromium.org/viewvc/chrome?view=rev&revision=105858
------------------------------------------------------------------------
r105858 | sreeram@chromium.org | Mon Oct 17 11:33:41 PDT 2011
Changed paths:
M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/instant/instant_controller.cc?r1=105858&r2=105857&pathrev=105858
Crash fix.
I don't see how tab_contents_ could be NULL inside PrepareForCommit().
Even if Update() had never been called, OnAutocompleteGotFocus() should
have set a valid tab_contents_. Anyway, check for it before trying to
access the profile().
BUG=100521
TEST=none
Review URL: http://codereview.chromium.org/8322005
------------------------------------------------------------------------
Summary: Chrome: Crash Report - Stack Signature: InstantController::PrepareForCommit()-f9109...
,
Oct 17, 2011
(No comment was entered for this change.)
Status: Fixed
,
Oct 17, 2011
The following revision refers to this bug:
http://src.chromium.org/viewvc/chrome?view=rev&revision=105862
------------------------------------------------------------------------
r105862 | dharani@chromium.org | Mon Oct 17 11:44:48 PDT 2011
Changed paths:
M http://src.chromium.org/viewvc/chrome/branches/911/src/chrome/browser/instant/instant_controller.cc?r1=105862&r2=105861&pathrev=105862
Merge 105858 - Crash fix.
I don't see how tab_contents_ could be NULL inside PrepareForCommit().
Even if Update() had never been called, OnAutocompleteGotFocus() should
have set a valid tab_contents_. Anyway, check for it before trying to
access the profile().
BUG=100521
TEST=none
Review URL: http://codereview.chromium.org/8322005
TBR=sreeram@chromium.org
Review URL: http://codereview.chromium.org/8294017
------------------------------------------------------------------------
Labels: merge-merged-911
,
Oct 17, 2011
i just saw this with today's canary 16.0.911.0 (Official Build 105769)
,
Oct 17, 2011
This is fixed in 16.0.911.2 Mac build. Yet to see confirm the fix on Windows as it is still building.
,
Oct 18, 2011
I checked too early. These crashes are still seen in 911.2 for mac and windows. Reopening the bug again.
Status: Assigned
,
Oct 18, 2011
I think I know the problem. We have a dangling TabContentsWrapper pointer. Previously, we used to be protected from accessing the pointer due to the "is_active()" check that browser.cc did before calling PrepareForCommit(). Since that check was removed in http://crrev.com/105664, we now don't have that protection anymore. I'll send a fix shortly.
Cc: sky@chromium.org
,
Oct 18, 2011
(No comment was entered for this change.)
Labels: ReleaseBlock-Dev ReleaseBlock-Beta
,
Oct 18, 2011
The following revision refers to this bug:
http://src.chromium.org/viewvc/chrome?view=rev&revision=106075
------------------------------------------------------------------------
r106075 | sreeram@chromium.org | Tue Oct 18 10:08:20 PDT 2011
Changed paths:
M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/instant/instant_controller.cc?r1=106075&r2=106074&pathrev=106075
Crash fix.
We never reset |tab_contents_| to NULL anywhere (and indeed we can't,
even in ReleasePreviewContents(), because browser.cc accesses it). We
were protected from acccessing a dangling tab_contents_ before, due to
the is_active() check that preceded a call to PrepareForCommit(). That
was removed in http://crrev.com/105664 however; hence this fix.
BUG=100521
TEST=none
Review URL: http://codereview.chromium.org/8329020
------------------------------------------------------------------------
,
Oct 18, 2011
Requesting merge into dev branch (16.0.912.0).
Labels: Merge-Requested
,
Oct 18, 2011
(No comment was entered for this change.)
Labels: -Merge-Requested Merge-Approved
,
Oct 18, 2011
The following revision refers to this bug:
http://src.chromium.org/viewvc/chrome?view=rev&revision=106084
------------------------------------------------------------------------
r106084 | sreeram@chromium.org | Tue Oct 18 11:06:37 PDT 2011
Changed paths:
M http://src.chromium.org/viewvc/chrome/branches/912/src/chrome/browser/instant/instant_controller.cc?r1=106084&r2=106083&pathrev=106084
Merge 106075 - Crash fix.
We never reset |tab_contents_| to NULL anywhere (and indeed we can't,
even in ReleasePreviewContents(), because browser.cc accesses it). We
were protected from acccessing a dangling tab_contents_ before, due to
the is_active() check that preceded a call to PrepareForCommit(). That
was removed in http://crrev.com/105664 however; hence this fix.
BUG=100521
TEST=none
Review URL: http://codereview.chromium.org/8329020
TBR=sreeram@chromium.org
Review URL: http://codereview.chromium.org/8344005
------------------------------------------------------------------------
Labels: merge-merged-912
,
Oct 18, 2011
(No comment was entered for this change.)
Labels: -ReleaseBlock-Dev -Merge-Approved
,
Oct 18, 2011
Issue 100791 has been merged into this issue.
,
Oct 18, 2011
I think you misread the crash data.
The problem isn't that |InstantController::tab_contents_| itself is NULL, but rather that tab_contents_.tab_contents_ is NULL.
Specifically the crash here is happening in tab_contents_->profile(), which has inlined 4 functions into that one line.
For instance, profile() is:
Profile* TabContentsWrapper::profile() const {
return Profile::FromBrowserContext(tab_contents()->browser_context());
}
and browser_context() is inlined from:
content::BrowserContent* TabContents::browser_context() const {
return controller_.browser_context();
}
The crash dump I looked at shows that the we were inside of TabContentsWrapper::profile() and |tab_contents()| returned NULL. (i.e. the scoped_ptr<TabContents> held by TabContentsWrapper).
Cc: eroman@chromium.org
,
Oct 18, 2011
@eroman, you may be right. I haven't been able to reproduce this crash, so I was kinda guessing earlier about the tab_contents_ being NULL thing (and it didn't really fix anything). However, I am reasonably confident that the new patch (r106075) will fix it, because it makes sense (see CL description). You'll notice that we are no longer checking for NULL. If anybody is able to reproduce this crash reliably, please post instructions. Thanks!
Labels: -ReleaseBlock-Beta
,
Oct 19, 2011
This crash doesn't seem to happen in the latest canary (16.0.912.2), so I'm considering this fixed.
Status: Fixed
,
Oct 27, 2011
Issue 101369 has been merged into this issue. |
||||||||||
| ► Sign in to add a comment | |||||||||||