Status: Untriaged
Owner: [email protected]
Labels: Type-Bug Pri-2 OS-All Area-Misc

New issue 5591 by [email protected]: DCHECK(!is_hidden_) failed in  
RenderWidgetHost::GetBackingStore()
http://code.google.com/p/chromium/issues/detail?id=5591

I'm running my developer build of the Chromium trunk.
It is a release build, and I run it with --enable-dcheck.

When I shut down Visual Studio, I noticed that Chromium
was hung.  I clicked its title bar and tried to move it.
It didn't respond, but eventually I got a crash due to
DCHECK failure.

The hanging and unresponsiveness before the DCHECK failure
could have been caused by Visual Studio trying to do a
lot of things before shutting down, or it could be just
coincidental.

The call stack is:

        chrome.dll!DebugUtil::BreakDebugger()  Line 101 C++
        chrome.dll!logging::LogMessage::~LogMessage()  Line 514 C++
>       chrome.dll!RenderWidgetHost::GetBackingStore()  Line 730        C++
        chrome.dll!RenderWidgetHostViewWin::OnPaint(HDC__ * dc=0x00000000)  Line
401 + 0xd bytes C++
        chrome.dll!RenderWidgetHostViewWin::ProcessWindowMessage(HWND__ *
hWnd=0x000e0328, unsigned int uMsg=0x0000000f, unsigned int
wParam=0x00000000, long lParam=0x00000000, long & lResult=0x040545a8,
unsigned long dwMsgMapID=0x00000000)  Line 81 + 0x14 bytes      C++

chrome.dll!ATL::CWindowImplBaseT<ATL::CWindow,ATL::CWinTraits<2181038080,0>
>::WindowProc(HWND__ * hWnd=0x040545a8, unsigned int uMsg=0x0000000f,
unsigned int wParam=0x00000000, long lParam=0x00000000)  Line 3078      C++
        user32.dll!_internalcallwinp...@20()  + 0x28 bytes      
        user32.dll!_usercallwinproccheck...@32()  + 0xb7 bytes  
        user32.dll!_dispatchclientmess...@20()  + 0x4d bytes    
        user32.dll!___fndw...@4()  + 0x24 bytes 
        ntdll.dll!_kiusercallbackdispatc...@12()  + 0x13 bytes  
        user32.dll!_ntuserdispatchmess...@4()  + 0xc bytes      
        user32.dll!_dispatchmessa...@4()  + 0xf bytes   
        chrome.dll!views::AcceleratorHandler::Dispatch(const tagMSG & msg={...})
  Line 32       C++
        chrome.dll!base::MessagePumpForUI::ProcessMessageHelper(const tagMSG &
msg={...})  Line 356 + 0xf bytes        C++
        chrome.dll!base::MessagePumpForUI::ProcessPumpReplacementMessage()  Line
395 + 0xb bytes C++
        chrome.dll!base::MessagePumpForUI::ProcessMessageHelper(const tagMSG &
msg={...})  Line 351 + 0x5 bytes        C++
        chrome.dll!base::MessagePumpForUI::DoRunLoop()  Line 204 + 0x34 bytes   
C++

chrome.dll!base::MessagePumpWin::RunWithDispatcher(base::MessagePump::Delegate
* delegate=0x0012f8dc, base::MessagePumpWin::Dispatcher *
dispatcher=0x00d93f70)  Line 54 C++
        chrome.dll!MessageLoop::RunInternal()  Line 192 + 0xc bytes     C++
        chrome.dll!MessageLoop::RunHandler()  Line 181  C++
        chrome.dll!MessageLoopForUI::Run(base::MessagePumpWin::Dispatcher *
dispatcher=0x00d93f70)  Line 559        C++
        chrome.dll!BrowserMain(CommandLine & parsed_command_line={...},
sandbox::BrokerServices * broker_services=0x00a43270)  Line 481 C++
        chrome.dll!ChromeMain(HINSTANCE__ * instance=0x00400000,
sandbox::SandboxInterfaceInfo * sandbox_info=0x0012fcfc, wchar_t *
command_line=0x00020948)  Line 338 + 0x13 bytes C++
        chrome.exe!wWinMain(HINSTANCE__ * instance=0x00400000, HINSTANCE__ *
prev_instance=0x00000000, wchar_t * command_line=0x00020948, int
__formal=0x00000001)  Line 93 + 0x17 bytes      C++
        chrome.exe!__tmainCRTStartup()  Line 324 + 0x1c bytes   C
        kernel32.dll!_baseprocessst...@4()  + 0x23 bytes        

The relevant code is:

RenderWidgetHost::BackingStore* RenderWidgetHost::GetBackingStore() {
   // We should not be asked to paint while we are hidden.  If we are hidden,
   // then it means that our consumer failed to call WasRestored.
   DCHECK(!is_hidden_) << "GetBackingStore called while hidden!";

   // We might have a cached backing store that we can reuse!
   BackingStore* backing_store =
       BackingStoreManager::GetBackingStore(this, current_size_);<= line 730
   // If we fail to find a backing store in the cache, send out a request
   // to the renderer to paint the view if required.
   if (!backing_store && !repaint_ack_pending_ && !resize_ack_pending_ &&
       !view_being_painted_) {
     repaint_start_time_ = TimeTicks::Now();
     repaint_ack_pending_ = true;
     Send(new ViewMsg_Repaint(routing_id_, current_size_));
   }
...

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Chromium-bugs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/chromium-bugs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to