My favorites | Sign in
Project Home Downloads Wiki Issues
New issue   Search
for
  Advanced search   Search tips
Issue 55754: Deadlock in drawing code
10 people starred this issue and may be notified of changes. Back to list
 
Reported by z...@google.com, Sep 15, 2010
Chrome Version       : r59515
URLs (if applicable) :
OS version               : 10.6.4
Behavior in Safari 3.x/4.x (if applicable):
Behavior in Firefox 3.x (if applicable):
Behavior in Chrome for Windows:

What steps will reproduce the problem?
1. open cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/webgl-conformance-tests.html
2. click "run tests" button
3. keep resizing the window and keep scrolling up and down.

What is the expected result?

Should not crash randomly.

What happens instead?

Sometimes it crashes at random test, sometimes it doesn't.  One time my whole Mac died, and the whole screen was flashing in a very low rate, and I had to push the button to restart my Mac.
Comment 1 by meh...@chromium.org, Sep 15, 2010
 Issue 55753  has been merged into this issue.
Comment 2 by thestig@chromium.org, Sep 15, 2010
Can you get a stack trace from your crash?

I've seen situations where Macs get the infinite spinny beach ball due to poor video card drivers.
Cc: sh...@chromium.org
Labels: Crash
Comment 3 by thakis@chromium.org, Sep 15, 2010
The screen flashing during resize is a known issue.
Owner: tha...@chromium.org
Comment 4 by thakis@chromium.org, Sep 15, 2010
"it" crashes? what? the renderer process? the browser? gpu?
Labels: -Area-Undefined Area-UI Feature-GPU
Comment 5 by z...@google.com, Sep 15, 2010
Screen flashing after my Mac died.  I didn't notice the flashing during resizing.
Comment 6 by bugdroid1@gmail.com, Sep 15, 2010
Verified label updated by AutoAllocator, contact AmolK or KrisR for details
Labels: Verifier-Rohitbm
Comment 7 by z...@google.com, Sep 15, 2010
After I restart the Mac, I couldn't reproduce the random crash, but during resizing, I see a lot of random textures painted in the browser for fleeting moments.  Also, sometimes the whole Mac hangs (for 15 seconds the last time), and then it resumed.  After it resumed, I keep resizing, then the whole Mac hangs again, the screen flashing at a low rate, and the browser client area was painted with random texture.  I waited five minutes this time, it didn't recover.

Looks like GPU-related.
Comment 8 by z...@google.com, Sep 15, 2010
"it" refers to the browser.  The browser crashes.
Comment 9 by thakis@google.com, Sep 15, 2010
The window flashing is a known issue.
Comment 10 by z...@google.com, Sep 15, 2010
#
# Fatal error in /src/chrome/src/v8/tools/gyp/../../src/objects-inl.h, line 1690
# CHECK(object->IsSmi()) failed
#

[2069:519:1049468380825:FATAL:/src/chrome/src/ipc/ipc_channel_posix.cc(109)] Check failed: i == map_.end(). Creating second IPC server (fd 14) for '2069.r2' while first (fd 13) still exists
Backtrace:
	0   Chromium Framework                  0x00bd651c StackTrace::StackTrace() + 32
	1   Chromium Framework                  0x00bf5413 logging::LogMessage::~LogMessage() + 63
	2   Chromium Framework                  0x016a8632 IPC::(anonymous namespace)::PipeMap::Insert(std::string const&, int) + 644
	3   Chromium Framework                  0x016a8685 IPC::AddChannelSocket(std::string const&, int) + 25
	4   Chromium Framework                  0x00a806ff GpuChannel::Init() + 103
	5   Chromium Framework                  0x00a8873a GpuThread::OnEstablishChannel(int) + 436
	6   Chromium Framework                  0x00a88ce3 void DispatchToMethod<GpuThread, void (GpuThread::*)(int), int>(GpuThread*, void (GpuThread::*)(int), Tuple1<int> const&) + 65
	7   Chromium Framework                  0x00a8a1f4 bool IPC::MessageWithTuple<Tuple1<int> >::Dispatch<GpuThread, void (GpuThread::*)(int)>(IPC::Message const*, GpuThread*, void (GpuThread::*)(int)) + 71
	8   Chromium Framework                  0x00a88936 GpuThread::OnControlMessageReceived(IPC::Message const&) + 154
	9   Chromium Framework                  0x00127e5e ChildThread::OnMessageReceived(IPC::Message const&) + 452
	10  Chromium Framework                  0x016ac6ce IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const&) + 144
	11  Chromium Framework                  0x016ad6cc void DispatchToMethod<IPC::ChannelProxy::Context, void (IPC::ChannelProxy::Context::*)(IPC::Message const&), IPC::Message>(IPC::ChannelProxy::Context*, void (IPC::ChannelProxy::Context::*)(IPC::Message const&), Tuple1<IPC::Message> const&) + 63
	12  Chromium Framework                  0x016ad707 RunnableMethod<IPC::ChannelProxy::Context, void (IPC::ChannelProxy::Context::*)(IPC::Message const&), Tuple1<IPC::Message> >::Run() + 57
	13  Chromium Framework                  0x00bfb6f9 MessageLoop::RunTask(Task*) + 315
	14  Chromium Framework                  0x00bfb7a9 MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) + 53
	15  Chromium Framework                  0x00bfba39 MessageLoop::DoWork() + 253
	16  Chromium Framework                  0x00c5b774 base::MessagePumpCFRunLoopBase::RunWork() + 74
	17  Chromium Framework                  0x00c5b7b9 base::MessagePumpCFRunLoopBase::RunWorkSource(void*) + 23
	18  CoreFoundation                      0x973570fb __CFRunLoopDoSources0 + 1563
	19  CoreFoundation                      0x97354bbf __CFRunLoopRun + 1071
	20  CoreFoundation                      0x97354094 CFRunLoopRunSpecific + 452
	21  CoreFoundation                      0x97353ec1 CFRunLoopRunInMode + 97
	22  HIToolbox                           0x937ebf9c RunCurrentEventLoopInMode + 392
	23  HIToolbox                           0x937ebd51 ReceiveNextEventCommon + 354
	24  HIToolbox                           0x937ebbd6 BlockUntilNextEventMatchingListInMode + 81
	25  AppKit                              0x97536a89 _DPSNextEvent + 847
	26  AppKit                              0x975362ca -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 156
	27  AppKit                              0x974f855b -[NSApplication run] + 821
	28  Chromium Framework                  0x00c5b2b6 base::MessagePumpNSApplication::DoRun(base::MessagePump::Delegate*) + 130
	29  Chromium Framework                  0x00c5b8a5 base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) + 175
	30  Chromium Framework                  0x00bfc244 MessageLoop::RunInternal() + 212
	31  Chromium Framework                  0x00bfc25f MessageLoop::RunHandler() + 17
	32  Chromium Framework                  0x00bfc2c3 MessageLoop::Run() + 35
	33  Chromium Framework                  0x00a87db4 GpuMain(MainFunctionParams const&) + 361
	34  Chromium Framework                  0x00008d60 ChromeMain + 4861
	35  Chromium Helper                     0x00001f52 main + 24
	36  Chromium Helper                     0x00001f0e start + 54
	37  ???                                 0x00000003 0x0 + 3

Comment 11 by z...@google.com, Sep 15, 2010
[2083:519:1279964993454:FATAL:/src/chrome/src/chrome/renderer/gpu_channel_host.cc(42)] Check failed: false. GpuChannelHost failed to route message
Backtrace:
	0   Chromium Framework                  0x00bd651c StackTrace::StackTrace() + 32
	1   Chromium Framework                  0x00bf5413 logging::LogMessage::~LogMessage() + 63
	2   Chromium Framework                  0x00ad183a GpuChannelHost::OnMessageReceived(IPC::Message const&) + 342
	3   Chromium Framework                  0x016ac6ce IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const&) + 144
	4   Chromium Framework                  0x016ad6cc void DispatchToMethod<IPC::ChannelProxy::Context, void (IPC::ChannelProxy::Context::*)(IPC::Message const&), IPC::Message>(IPC::ChannelProxy::Context*, void (IPC::ChannelProxy::Context::*)(IPC::Message const&), Tuple1<IPC::Message> const&) + 63
	5   Chromium Framework                  0x016ad707 RunnableMethod<IPC::ChannelProxy::Context, void (IPC::ChannelProxy::Context::*)(IPC::Message const&), Tuple1<IPC::Message> >::Run() + 57
	6   Chromium Framework                  0x00bfb6f9 MessageLoop::RunTask(Task*) + 315
	7   Chromium Framework                  0x00bfb7a9 MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) + 53
	8   Chromium Framework                  0x00bfba39 MessageLoop::DoWork() + 253
	9   Chromium Framework                  0x00c5b774 base::MessagePumpCFRunLoopBase::RunWork() + 74
	10  Chromium Framework                  0x00c5b7b9 base::MessagePumpCFRunLoopBase::RunWorkSource(void*) + 23
	11  CoreFoundation                      0x97356f91 __CFRunLoopDoSources0 + 1201
	12  CoreFoundation                      0x97354bbf __CFRunLoopRun + 1071
	13  CoreFoundation                      0x97354094 CFRunLoopRunSpecific + 452
	14  CoreFoundation                      0x97353ec1 CFRunLoopRunInMode + 97
	15  HIToolbox                           0x937ebf9c RunCurrentEventLoopInMode + 392
	16  HIToolbox                           0x937ebd51 ReceiveNextEventCommon + 354
	17  HIToolbox                           0x937ebbd6 BlockUntilNextEventMatchingListInMode + 81
	18  AppKit                              0x97536a89 _DPSNextEvent + 847
	19  AppKit                              0x975362ca -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 156
	20  AppKit                              0x974f855b -[NSApplication run] + 821
	21  Chromium Framework                  0x00c5b2b6 base::MessagePumpNSApplication::DoRun(base::MessagePump::Delegate*) + 130
	22  Chromium Framework                  0x00c5b8a5 base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) + 175
	23  Chromium Framework                  0x00bfc244 MessageLoop::RunInternal() + 212
	24  Chromium Framework                  0x00bfc25f MessageLoop::RunHandler() + 17
	25  Chromium Framework                  0x00bfc2c3 MessageLoop::Run() + 35
	26  Chromium Framework                  0x00b4dd32 RendererMain(MainFunctionParams const&) + 1614
	27  Chromium Framework                  0x00008c84 ChromeMain + 4641
	28  Chromium Helper                     0x00001f52 main + 24
	29  Chromium Helper                     0x00001f0e start + 54
Comment 12 by z...@google.com, Sep 15, 2010
The above are two crashes with backtrace.  Sometimes it crashes without printing out backtrace information.
Comment 13 by thakis@google.com, Sep 15, 2010
That's another known problem :-)
Comment 14 by z...@google.com, Sep 15, 2010
In general, you don't even need to do the resizing and scrolling thing.  You just hit the "Run tests" button and wait, and the browser will crash at random tests from time to time.  Hope this is not a known problem. :)
Comment 15 by kbr@chromium.org, Sep 15, 2010
(No comment was entered for this change.)
Cc: k...@chromium.org
Comment 16 by thakis@google.com, Sep 16, 2010
Did you install the graphics update that arrived in Apple's Software Update about 2 weeks ago?
Comment 17 by z...@google.com, Sep 16, 2010
I haven't.   I'll update and test.  Will report.
Comment 18 by rohi...@chromium.org, Sep 21, 2010
7.0.530.0 (Official Build 60028) dev

After I started the test running, when I tried to resize Chrome window, I got infinite beach ball. Chrome didn't crash, but had to kill it force-fully. 

Note: My SL test machine is fully updated with all Apple updates till date.
Screen shot 2010-09-21 at 6.35.55 PM.png
129 KB   View   Download
Status: Untriaged
Cc: rohi...@chromium.org kr...@chromium.org
Comment 19 by thakis@google.com, Sep 22, 2010
It just occurred to me that this is probably related to  issue 54759 : we're leaking textures under certain circumstances, and resizing is one of them (but not the only one). So let's wait until that is fixed.
Comment 20 by kerz@chromium.org, Sep 22, 2010
(No comment was entered for this change.)
Status: Assigned
Labels: -Pri-2 Pri-1 Mstone-8
Blockedon: 54759
Comment 21 by thakis@chromium.org, Sep 23, 2010
Hm, the screenshot in comment 18 might be a deadlock in the drawing code that I might've introduced in r 59890 :-/ Haven't reproed that yet.
Labels: -Mstone-8 Mstone-7
Comment 22 by thakis@chromium.org, Sep 28, 2010
Yes, it's a deadlock. (In code I got from Apple example code. Maybe I'm doing something else they don't expect.)

(gdb) bt
#0  0x93289142 in semaphore_wait_signal_trap ()
#1  0x9328ec06 in pthread_mutex_lock ()
#2  0x9773ec68 in CVCGDisplayLink::setCurrentDisplay ()
#3  0x9774de52 in CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext ()
#4  0x00827a04 in -[AcceleratedPluginView globalFrameDidChange:] (self=0x16238f10, _cmd=0x903c5279, notification=0x15531c30) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/browser/renderer_host/render_widget_host_view_mac.mm:299
#5  0x9723e1c3 in _nsnote_callback ()
#6  0x9548a3c3 in __CFXNotificationPost ()
#7  0x95489dca in _CFXNotificationPostNotification ()
#8  0x97233090 in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
#9  0x9724046d in -[NSNotificationCenter postNotificationName:object:] ()
#10 0x935f8306 in -[NSSurface setFrame:] ()
#11 0x935f7c77 in -[NSSurface syncToViewUnconditionally] ()
#12 0x935f9999 in -[NSSurface syncToView:] ()
#13 0x9367e470 in -[NSView(NSSurface) _syncSurfaceIfPostponed] ()
#14 0x9367e422 in -[NSOpenGLContext update] ()
#15 0x0082796b in -[AcceleratedPluginView globalFrameDidChange:] (self=0x16238f10, _cmd=0x903c5279, notification=0x0) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/browser/renderer_host/render_widget_host_view_mac.mm:288
#16 0x008228c3 in -[AcceleratedPluginView renewGState] (self=0x16238f10, _cmd=0x93cd2086) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/browser/renderer_host/render_widget_host_view_mac.mm:305
#17 0x934ecfd2 in -[NSView _invalidateGStatesForTree] ()
#18 0x95463ff0 in CFArrayApplyFunction ()
#19 0x934ed177 in -[NSView _invalidateGStatesForTree] ()
#20 0x95463ff0 in CFArrayApplyFunction ()
#21 0x934ed177 in -[NSView _invalidateGStatesForTree] ()
#22 0x95463ff0 in CFArrayApplyFunction ()
#23 0x934ed177 in -[NSView _invalidateGStatesForTree] ()
#24 0x95463ff0 in CFArrayApplyFunction ()
#25 0x934ed177 in -[NSView _invalidateGStatesForTree] ()
#26 0x95463ff0 in CFArrayApplyFunction ()
#27 0x934ed177 in -[NSView _invalidateGStatesForTree] ()
#28 0x934ecf57 in -[NSView _invalidateFocus] ()
#29 0x934e7a58 in -[NSView setFrameSize:] ()
#30 0x934e769d in -[NSView setFrame:] ()
#31 0x003868e6 in -[FastResizeView(PrivateMethods) layoutSubviews] (self=0x16249e80, _cmd=0x903dae36) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/browser/cocoa/fast_resize_view.mm:62
#32 0x003865bc in -[FastResizeView resizeSubviewsWithOldSize:] (self=0x16249e80, _cmd=0x93cb9bc4, oldSize={width = 1054, height = 346}) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/browser/cocoa/fast_resize_view.mm:27
#33 0x934e7bf2 in -[NSView setFrameSize:] ()
#34 0x934e769d in -[NSView setFrame:] ()
#35 0x93577cbf in -[NSView resizeWithOldSuperviewSize:] ()
#36 0x934ed784 in -[NSView resizeSubviewsWithOldSize:] ()
#37 0x934e7bf2 in -[NSView setFrameSize:] ()
#38 0x934ebbbd in -[NSWindow _oldPlaceWindow:] ()
#39 0x934ead7c in -[NSWindow _setFrameCommon:display:stashSize:] ()
#40 0x934ea677 in -[NSWindow setFrame:display:] ()
#41 0x9368ab44 in -[NSTitledFrame resizeWithEvent:] ()
#42 0x93689767 in -[NSTitledFrame mouseDown:] ()
#43 0x936896ce in -[NSThemeFrame mouseDown:] ()
#44 0x93620e9c in -[NSWindow sendEvent:] ()
#45 0x0034bc2c in -[ChromeEventProcessingWindow sendEvent:] (self=0x16248810, _cmd=0x93c9ca98, event=0x9258a30) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/browser/cocoa/chrome_event_processing_window.mm:125
#46 0x0038ffa2 in -[FramedBrowserWindow sendEvent:] (self=0x16248810, _cmd=0x93c9ca98, event=0x9258a30) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/browser/cocoa/framed_browser_window.mm:304
#47 0x93539aff in -[NSApplication sendEvent:] ()
#48 0x00bf5a6e in -[CrApplication sendEvent:] (self=0x15500060, _cmd=0x93c9ca98, event=0x9258a30) at /Volumes/MacintoshHD2/src/chrome-git/src/base/chrome_application_mac.mm:43
#49 0x934cd5bb in -[NSApplication run] ()
#50 0x00c7eefe in base::MessagePumpNSApplication::DoRun (this=0x95183b0, delegate=0x951b580) at /Volumes/MacintoshHD2/src/chrome-git/src/base/message_pump_mac.mm:677
#51 0x00c7f4ed in base::MessagePumpCFRunLoopBase::Run (this=0x95183b0, delegate=0x951b580) at /Volumes/MacintoshHD2/src/chrome-git/src/base/message_pump_mac.mm:213
#52 0x00c1f0da in MessageLoop::RunInternal (this=0x951b580) at /Volumes/MacintoshHD2/src/chrome-git/src/base/message_loop.cc:258
#53 0x00c1f0f5 in MessageLoop::RunHandler (this=0x951b580) at /Volumes/MacintoshHD2/src/chrome-git/src/base/message_loop.cc:230
#54 0x00c1f159 in MessageLoop::Run (this=0x951b580) at /Volumes/MacintoshHD2/src/chrome-git/src/base/message_loop.cc:208
#55 0x00285bc3 in (anonymous namespace)::RunUIMessageLoop (browser_process=0x16300b20) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/browser/browser_main.cc:473
#56 0x0028875c in BrowserMain (parameters=@0xbffff54c) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/browser/browser_main.cc:1447
#57 0x000087ac in ChromeMain (argc=3, argv=0xbffff6e4) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/app/chrome_dll_main.cc:947
#58 0x00001f52 in main (argc=3, argv=0xbffff6e4) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/app/chrome_exe_main.mm:16

(gdb) thread 20
[Switching to thread 20 (process 27706)]
0x93289142 in semaphore_wait_signal_trap ()
(gdb) bt
#0  0x93289142 in semaphore_wait_signal_trap ()
#1  0x9328ec06 in pthread_mutex_lock ()
#2  0x9957777e in CGLLockContext ()
#3  0x00827b1f in -[AcceleratedPluginView drawView] (self=0x16238f10, _cmd=0x29825a6) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/browser/renderer_host/render_widget_host_view_mac.mm:252
#4  0x00827f59 in -[AcceleratedPluginView getFrameForTime:] (self=0x16238f10, _cmd=0x2982de4, outputTime=0xb0102d90) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/browser/renderer_host/render_widget_host_view_mac.mm:188
#5  0x00822279 in DrawOneAcceleratedPluginCallback (displayLink=0x987b200, now=0xb0102ef0, outputTime=0xb0102d90, flagsIn=0, flagsOut=0xb0102de0, displayLinkContext=0x16238f10) at /Volumes/MacintoshHD2/src/chrome-git/src/chrome/browser/renderer_host/render_widget_host_view_mac.mm:202
#6  0x97740bf4 in CVDisplayLink::performIO ()
#7  0x9773f828 in CVDisplayLink::runIOThread ()
#8  0x9773f456 in startIOThread ()
#9  0x932b681d in _pthread_start ()
#10 0x932b66a2 in thread_start ()

Summary: Deadlock in drawing code
Status: Started
Labels: ReleaseBlock-Stable
Comment 23 by kbr@chromium.org, Sep 28, 2010
That's awful. You're sure there aren't any other threads involved in the deadlock? The first thread above isn't  holding the CGL context lock from Chromium code -- it's released before calling CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext.

Comment 24 by thakis@chromium.org, Sep 29, 2010
kbr: That had me stumped for up until now too. But: [AcceleratedPluginView globalFrameDidChange:] is on the ui thread stack twice. It took the lock twice and released it only once.

The deadlock is:
* UI thread has CGL lock (from the lower invocation of globalFrameDidChange), wants to take the displaylink lock (a lock internal to the internal CVDisplayLink class)
* displaylink thread has the lock on the internal CVDisplayLink (taken in CVDisplayLink::runIOThread(), wants to take the CGL lock
Comment 26 by bugdroid1@gmail.com, Sep 29, 2010
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=60984

------------------------------------------------------------------------
r60984 | thakis@chromium.org | Wed Sep 29 13:32:19 PDT 2010

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/renderer_host/render_widget_host_view_mac.mm?r1=60984&r2=60983&pathrev=60984

Mac: Fix deadlock in the accelerated drawing code.

Also stop the display link thread for background tabs even if --disable-hole-punching is active.

BUG=55754
TEST=Go to a page that uses the compositor (e.g. http://webkit.org/blog/386/3d-transforms/), then keep resizing the browser window for ~10 minutes. The browser should stay functional.

Review URL: http://codereview.chromium.org/3549004
------------------------------------------------------------------------
Comment 27 by thakis@chromium.org, Sep 29, 2010
Still needs to be merged to the m7 branch.
Comment 28 by rohi...@chromium.org, Sep 29, 2010
7.0.536.2 (Official Build 60818) dev

Another easy steps to repro this problem:

1. Open Hulu.com and start any video.
2. Popout video.
3. Resize popped-out window. (which is playing video)

Result:
3.1 Chrome hung. I got the same bt.
Comment 29 by thakis@google.com, Sep 29, 2010
Thanks, rohit. That seems to be fixed with my CL as well (see comment 26).

But I guess that might move the "uninitalized data visible during resizing" but to m7 :-/
Comment 30 by thakis@chromium.org, Sep 30, 2010
drovered in r61083
Status: Fixed
Comment 31 by bugdroid1@gmail.com, Sep 30, 2010
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=61083

------------------------------------------------------------------------
r61083 | thakis@chromium.org | Thu Sep 30 11:17:14 PDT 2010

Changed paths:
 M http://src.chromium.org/viewvc/chrome/branches/517/src/chrome/browser/renderer_host/render_widget_host_view_mac.mm?r1=61083&r2=61082&pathrev=61083

Merge 60984 - Mac: Fix deadlock in the accelerated drawing code.

Also stop the display link thread for background tabs even if --disable-hole-punching is active.

BUG=55754
TEST=Go to a page that uses the compositor (e.g. http://webkit.org/blog/386/3d-transforms/), then keep resizing the browser window for ~10 minutes. The browser should stay functional.

Review URL: http://codereview.chromium.org/3549004

TBR=thakis@chromium.org
Review URL: http://codereview.chromium.org/3517005
------------------------------------------------------------------------
Comment 32 by rohi...@chromium.org, Oct 11, 2010
8.0.551.0 (Official Build 62110)
Status: Verified
Comment 33 by shess@chromium.org, Oct 12, 2010
Nico, I believe that your comment #22 means that this case:

http://crash/reportdetail?reportid=17262ae615a48ef6

Thread 22 *CRASHED* ( EXC_BAD_ACCESS / KERN_PROTECTION_FAILURE @ 0x000000a0 )

0x92c8ea34	 [libSystem.B.dylib	 + 0x00006a34]	pthread_mutex_lock
0x0057a46b	 [Google Chrome Framework	 - ../base/lock.h:20]	AcceleratedSurfaceContainerManagerMac::Draw
0x005926f5	 [Google Chrome Framework	 - render_widget_host_view_mac.mm:268]	-[AcceleratedPluginView drawView]
0x00591c4a	 [Google Chrome Framework	 - render_widget_host_view_mac.mm:198]	-[AcceleratedPluginView getFrameForTime:]
0x9952afc7	 [CoreVideo	 + 0x00002fc7]	CVDisplayLink::performIO(CVTimeStamp*)
0x99529bfb	 [CoreVideo	 + 0x00001bfb]	CVDisplayLink::runIOThread()
0x99529829	 [CoreVideo	 + 0x00001829]	startIOThread(void*)
0x92cb681c	 [libSystem.B.dylib	 + 0x0002e81c]	_pthread_start
0x92cb66a1	 [libSystem.B.dylib	 + 0x0002e6a1]	thread_start

is also fixed.  If I'm wildly wrong, let me know so I can log a new bug for those crashes.
Comment 34 by thakis@google.com, Oct 12, 2010
shess: That looks more like  issue 56721  (also fixed).
Comment 35 by thakis@chromium.org, Oct 18, 2010
 Issue 58165  has been merged into this issue.
Cc: stuartmo...@chromium.org thes...@chromium.org tha...@chromium.org
Comment 36 by lafo...@chromium.org, Mar 18, 2011
Chrome Version       : r59515
<b>URLs (if applicable) :</b>
OS version               : 10.6.4
<b>Behavior in Safari 3.x/4.x (if applicable):</b>
<b>Behavior in Firefox 3.x (if applicable):</b>
<b>Behavior in Chrome for Windows:</b>

<b>What steps will reproduce the problem?</b>
1. open cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/webgl-conformance-tests.html
2. click &quot;run tests&quot; button
3. keep resizing the window and keep scrolling up and down.

<b>What is the expected result?</b>

Should not crash randomly.

<b>What happens instead?</b>

Sometimes it crashes at random test, sometimes it doesn't.  One time my whole Mac died, and the whole screen was flashing in a very low rate, and I had to push the button to restart my Mac.
Labels: -Crash bulkmove Stability-Crash
Sign in to add a comment

Powered by Google Project Hosting